|
New Posts - jak wy?wietla? tylko tematy?
|
| Torpex |
Dodany dnia 17.08.2006 17:56:13
|

Przedszkolak

Postów: 5
Data rejestracji: 01.06.2006 01:19
|
Bardzo, BARDZO si? ucieszy?em kiedy w wersji 6 pojawi? si? infusion do wy?wietlania nowych postów na forum. Chcia?bym go jeszcze zmodyfikowa? tak, ?eby strona...
.../infusions/forum_threads_list_panel/new_posts.php
...pokazywa?a list? tematów z nowymi postami (wzorem nowych postów na phpBB ), a nie wszystkie nowe posty. W php + sql jestem raczej zielony, ale umiem zrobi? je?li kto? mi podyktuje. Z góry dzi?ki.
Edytowane przez Torpex dnia 17.08.2006 17:56:59
|
| |
|
|
| W?cibski Go?? |
Dodany dnia 24.10.2025 07:48:30
|
Pan Kontekstualny
Postów: n^x
Data rejestracji: Zawsze
|
|
| IP: localhost |
|
|
| Lala |
Dodany dnia 17.09.2006 11:18:00
|

Przedszkolak

Postów: 27
Data rejestracji: 19.07.2006 11:38
|
Równie? by?bym wdzi?czny je?li kto? pomóg?by przerobi? plik forum_threads_list_panel/new_posts.php ?eby si? pojawia?y same tematy (bez ich powtarzania chocia? by?y w nim 2 nowe posty) |
| |
|
|
| slawekneo |
Dodany dnia 18.09.2006 04:27:04
|

Bywalec

Postów: 915 Pomógł: 41
Data rejestracji: 12.03.2006 07:28
|
tak wiec przysiedzialem przy tym troche :D
oto jak wyglada 
a oto i kod do wstawienia w plik new_post.php
<?php
include "../../maincore.php";
include BASEDIR."subheader.php";
include BASEDIR."side_left.php";
if (!iMEMBER) fallback("../../index.php");
if (!isset($lastvisited) || !isNum($lastvisited)) $lastvisited = time();
opentable($locale['028']);
$tematow=0;
$result = dbquery(
"SELECT tp.post_datestamp, tf.forum_id FROM ".$db_prefix."posts tp
INNER JOIN ".$db_prefix."forums tf USING(forum_id)
WHERE ".groupaccess('forum_access')." AND tp.post_datestamp>'$lastvisited'"
);
$rows = dbrows($result);
if ($rows != 0) {
if (!isset($rowstart) || !isNum($rowstart)) $rowstart = 0;
[b]$result2 = dbquery(
"SELECT
tf.forum_id, tf.forum_cat, tf.forum_name,
tt.thread_id, tt.thread_lastuser, thread_lastpost, thread_subject,
tp.post_id, tp.post_datestamp, tu.user_id,user_name,
MAX(tp.post_id) as ostatni_post,
COUNT(post_datestamp) as nowych_postow
FROM ".$db_prefix."forums tf
INNER JOIN ".$db_prefix."threads tt USING(forum_id)
INNER JOIN ".$db_prefix."posts tp USING(thread_id)
INNER JOIN ".$db_prefix."users tu ON tt.thread_lastuser=tu.user_id
WHERE ".groupaccess('forum_access')." AND thread_lastpost>'$lastvisited' AND post_datestamp>'$lastvisited'
GROUP BY thread_lastpost
ORDER BY thread_lastpost DESC
LIMIT $rowstart,20"
);[/b]
echo "<table cellspacing='1' cellpadding='0' width='100%' border='0' class='tbl-border'>
<tr>
<td class='tbl2'><span class='small'><b>".$locale['030']."</b></span></td>
<td class='tbl2'><span class='small'> <b>".$locale['035']."</b></span></td>
<td align='center' class='tbl2' width='1%' style='white-space:nowrap'><span class='small'><b>Nowych</b></span></td>
<td align='center' class='tbl2' width='1%' style='white-space:nowrap'><span class='small'><b>Ostatni post</b></span></td>
<td align='center' class='tbl2' width='1%' style='white-space:nowrap'><span class='small'><b>Data</b></span></td></tr>\n";
while ($data2 = dbarray($result2)) {
echo "<tr>
<td width='2%' class='tbl1' style='white-space:nowrap'><a href='".BASEDIR."forum/viewforum.php?forum_id=".$data2['forum_id']."&forum_cat=".$data2['forum_cat']."'><span class='small'>".trimlink($data2['forum_name'], 18)."</span></a></td>
<td width='2%' class='tbl1' style='white-space:nowrap'> <a href='".BASEDIR."forum/viewthread.php?forum_id=".$data2['forum_id']."&thread_id=".$data2['thread_id']."&pid=".$data2['ostatni_post']."#post_".$data2['ostatni_post']."'><span class='small'>".trimlink($data2['thread_subject'],22)."</span></a></td>
<td align='center' width='2%' class='tbl1' style='white-space:nowrap'>".$data2['nowych_postow']."</td>
<td align='center' width='2%' class='tbl1' style='white-space:nowrap'><a href='".BASEDIR."profile.php?lookup=".$data2['user_id']."'><span class='small'>".$data2['user_name']."</span></a></td>
<td align='center' width='2%' class='tbl1' style='white-space:nowrap'><span class='small'>".showdate("%d.%m-%H:%M",$data2['thread_lastpost'])."</span></td>
</tr>\n";
$tematow++;
}
echo "<tr>\n<td align='center' colspan='5' class='tbl1'><br><span class='small'>Na forum jest <b>".$rows."</b> nowych postów w <b>".$tematow."</b> tematach od Twojej ostatniej wizyty.</span></td>\n</tr>\n</table>\n";
} else {
echo "<center><br>".sprintf($locale['039'], $rows)."<br><br></center>\n";
}
closetable();
if ($tematow > 20) echo "<div align='center' style='margin-top:5px;'>\n".makePageNav($rowstart,20,$tematow,3)."\n</div>\n";
include BASEDIR."side_right.php";
include BASEDIR."footer.php";
?>
Fajne nie :D
Pozdro!!
Edytowane przez slawekneo dnia 20.09.2006 10:21:16
|
| |
|
|
| Lala |
Dodany dnia 18.09.2006 09:04:16
|

Przedszkolak

Postów: 27
Data rejestracji: 19.07.2006 11:38
|
Nom dobre i wszystko by?o by ok, tylko ?e to z tego co zauwa?y?em wy?wietla jednego usera posty (np. moje albo twoje) od ostatniej wizyty. Chyba gdzie? jest ma?y b??dzik  |
| |
|
|
| Pieka |
Dodany dnia 18.09.2006 09:13:03
|


Postów: 19887 Pomógł: 767
v7.02.03 Data rejestracji: 23.02.2005 18:12
|
Lala napisa?/a:
Nom dobre i wszystko by?o by ok, tylko ?e to z tego co zauwa?y?em wy?wietla jednego usera posty (np. moje albo twoje) od ostatniej wizyty. Chyba gdzie? jest ma?y b??dzik 
Jak robil screena, to mial zrobic z Twoimi ostatnimi postami?
Jestem jaki jestem 
|
| |
|
|
| Lala |
Dodany dnia 18.09.2006 09:19:16
|

Przedszkolak

Postów: 27
Data rejestracji: 19.07.2006 11:38
|
Pieka ja 5 lat nie mam wiem ?e to screan i sprawdza?em u siebie, na moim koncie widz? tylko swoje ostatnie posty i podejrzewam ?e ka?dy user widzi wy??cznie swoje, które napisa? prawdopodobnie od ostatniego zalogowania, albo mo?e troch? wcze?niej  |
| |
|
|
| Pieka |
Dodany dnia 18.09.2006 09:47:33
|


Postów: 19887 Pomógł: 767
v7.02.03 Data rejestracji: 23.02.2005 18:12
|
Lala napisa?/a:
Pieka ja 5 lat nie mam wiem ?e to screan i sprawdza?em u siebie, na moim koncie widz? tylko swoje ostatnie posty i podejrzewam ?e ka?dy user widzi wy??cznie swoje, które napisa? prawdopodobnie od ostatniego zalogowania, albo mo?e troch? wcze?niej 
Moze i wiesz, ale z Twojej wypowiedzi (drugiej) wnioskuje, ze jestes przewrazliwiony na tym punkcie oraz to, ze nie masz racji 
Zalaczam swoj screen....
Jestem jaki jestem 
|
| |
|
|
| slawekneo |
Dodany dnia 18.09.2006 09:57:59
|

Bywalec

Postów: 915 Pomógł: 41
Data rejestracji: 12.03.2006 07:28
|
hee @Pieka mnie dzielnie broni tzn moich modow  
a tak poza to pokazuje autora tematu bo niemialem co dac jesli jest pare postow w jednym temacie to i kazdy post ma innego autora i sie robilo wielkie nico zmienie to pozniej na to aby autor ostatniego posta (w danym temacie) byl wyswietlany albo poprostu do rubryki AUTOR dopiesze "TEMATU" 
Pozdro!!
Edytowane przez slawekneo dnia 18.09.2006 10:00:35
|
| |
|
|
| Lala |
Dodany dnia 18.09.2006 10:16:02
|

Przedszkolak

Postów: 27
Data rejestracji: 19.07.2006 11:38
|
W?a?nie dopiero to zauwa?y?em, za co przepraszam, moja nieuwaga x]
Sam próbowa?em to zmieni? na autora ostatniego postu ale co? kiepsko mi to wychodzi :/ |
| |
|
|
| slawekneo |
Dodany dnia 18.09.2006 14:43:33
|

Bywalec

Postów: 915 Pomógł: 41
Data rejestracji: 12.03.2006 07:28
|
teraz wszystko jest poprawione na cacy w moim pierwszym poscie 
Pozdro!! |
| |
|
|
| Lala |
Dodany dnia 18.09.2006 16:05:49
|

Przedszkolak

Postów: 27
Data rejestracji: 19.07.2006 11:38
|
Nom teraz dzia?a. Tylko przy braku postów rozwala troch? stron?. Z tego co widz? ostatnie echo "</td>\n"; niepotrzebne i wcze?niej w linijce
<td align='center' class='tbl2' width='120'><b>Data</b></td>\n"; zapomnia?e? doda? </tr> :D
I jeszcze z tego co zauwa?y?em to chyba jest drobna pomy?ka w linijce:
<td class='tbl1'><a href='".BASEDIR."forum/viewthread.php?forum_id=".$data2['forum_id']."&thread_id=".$data2['thread_id']."&pid=".$data2['post_id']."#post_".$data['post_id']."'>".trimlink($data2['post_subject'],20)."</a></td>
bo wy?wietla troche b??dny adres który otwiera pierwszy post w temacie zamiast otwiera? ostatni ;)
No i jeszcze jeden szczegó? ?eby tak wszystko by?o dopi?te na ostatni guzik. Wy?wietla si? numer drugiej strony gdy jest ju? ponad 20 postów, a powinno by? dopiero gdy b?dzie 20 tematów x]
Edytowane przez Lala dnia 18.09.2006 16:47:15
|
| |
|
|
| slawekneo |
Dodany dnia 18.09.2006 18:53:03
|

Bywalec

Postów: 915 Pomógł: 41
Data rejestracji: 12.03.2006 07:28
|
ehh ten to normalnie zawsze musi cos znalesc hee (poprawione wszystkie wypisane bledy; kod zaktualizowany)
Pozdro!!
Ps.no teraz to juz napewno niema nigdzie baboli
Edytowane przez slawekneo dnia 18.09.2006 18:55:18
|
| |
|
|
| Lala |
Dodany dnia 18.09.2006 19:25:36
|

Przedszkolak

Postów: 27
Data rejestracji: 19.07.2006 11:38
|
Oj S?awu? ?eby? wiedzia? ile teraz baboli si? narobi?o :D
To:
<a href='".BASEDIR."profile.php?lookup=".$data2['post_author']."'>".$data2['user_name']."</a>
zamie? na to:
<a href='".BASEDIR."profile.php?lookup=".$data2['user_id']."'>".$data2['user_name']."</a>
No i jeszcze $data2['post_id'] wskazuje na numer tematu pierwszego a powinien na ostatni, ale t? poprawk? chyba lepiej ?eby? Ty wykona? :D |
| |
|
|
| slawekneo |
Dodany dnia 20.09.2006 05:46:46
|

Bywalec

Postów: 915 Pomógł: 41
Data rejestracji: 12.03.2006 07:28
|
- kod poprawiony zaktualizowany (zalecene zaktualizowac caly kod)
- screen zaktualizowany
- zapytania maxymalnie zoptymalizowane do dwuch
- baboli napotkanych: 0
i to "chyba" wszystko 
Pozdro!! |
| |
|
|
| Lala |
Dodany dnia 20.09.2006 12:01:07
|

Przedszkolak

Postów: 27
Data rejestracji: 19.07.2006 11:38
|
To mo?e jeszcze prze?le swój screen bo wydaje mi si? ci?gle ?e nie wszystko gra.
Chodzi mianowicie o to ?e gdy jest wi?cej ni? 20 tematów (bo w aktualnym screenie powinno by? z 50 a nie 20) to ich wi?cej nie pokazuje, równie? linku do nast?pnej strony postów nie pokazuje 
Lala dodał/a następującą grafikę:
|
| |
|
|
| PtRM |
Dodany dnia 13.07.2009 16:36:00
|

Przedszkolak

Postów: 11 Pomógł: 4
Data rejestracji: 24.06.2009 09:20
|
Po ponad trzech latach odkopuj? temat, poniewa? wykonana przez s?awkaneo modyfikacja nie dzia?a?a prawid?owo z Fusion 7, a innej nie znalaz?em, wi?c j? przerobi?em :
<?php
/*-------------------------------------------------------+
| PHP-Fusion Content Management System
| Copyright (C) 2002 - 2008 Nick Jones
| http://www.php-fusion.co.uk/
+--------------------------------------------------------+
| Filename: new_posts.php
| Author: Nick Jones (Digitanium)
+--------------------------------------------------------+
| This program is released as free software under the
| Affero GPL license. You can redistribute it and/or
| modify it under the terms of this license which you
| can read by viewing the included agpl.txt or online
| at http://www.gnu.org/licenses/agpl.html. Removal of this
| copyright header is strictly prohibited without
| written permission from the original author(s).
+--------------------------------------------------------*/
require_once "../../maincore.php";
require_once THEMES."templates/header.php";
if (!iMEMBER) { redirect("../../index.php"); }
if (!isset($lastvisited) || !isnum($lastvisited)) $lastvisited = time();
add_to_title($locale['global_200'].$locale['global_043']);
if (!iMEMBER) fallback("../../index.php");
if (!isset($lastvisited) || !isNum($lastvisited)) $lastvisited = time();
opentable ($locale['global_043']);
$tematow=0;
$result = dbquery(
"SELECT tp.post_datestamp, tf.forum_id FROM ".$db_prefix."posts tp
INNER JOIN ".$db_prefix."forums tf USING(forum_id)
WHERE ".groupaccess('forum_access')." AND tp.post_datestamp>'$lastvisited'"
);
$rows = dbrows($result);
if ($rows != 0) {
if (!isset($rowstart) || !isNum($rowstart)) $rowstart = 0;
$result2 = dbquery(
"SELECT
tf.forum_id, tf.forum_cat, tf.forum_name,
tt.thread_id, tt.thread_lastuser, thread_lastpost, thread_subject,
tp.post_id, tp.post_datestamp, tu.user_id,user_name,
MAX(tp.post_id) as ostatni_post,
COUNT(post_datestamp) as nowych_postow
FROM ".$db_prefix."forums tf
INNER JOIN ".$db_prefix."threads tt USING(forum_id)
INNER JOIN ".$db_prefix."posts tp USING(thread_id)
INNER JOIN ".$db_prefix."users tu ON tt.thread_lastuser=tu.user_id
WHERE ".groupaccess('forum_access')." AND thread_lastpost>'$lastvisited' AND post_datestamp>'$lastvisited'
GROUP BY thread_lastpost
ORDER BY thread_lastpost DESC
LIMIT $rowstart,20"
);
echo "<table cellspacing='1' cellpadding='0' width='100%' border='0' class='tbl-border'>
<tr>
<td class='tbl2'><span class='small'><b>".$locale['global_048']."</b></span></td>
<td class='tbl2'><span class='small'><b>".$locale['global_044']."</b></span></td>
<td align='center' class='tbl2' width='1%' style='white-space:nowrap'><span class='small'><b>Nowe</b></span></td>
<td align='center' class='tbl2' width='1%' style='white-space:nowrap'><span class='small'><b>Ostatni post</b></span></td>
<td align='center' class='tbl2' width='1%' style='white-space:nowrap'><span class='small'><b>Data</b></span></td></tr>\n";
while ($data2 = dbarray($result2)) {
echo "<tr>
<td width='2%' class='tbl1' style='white-space:nowrap'><a href='".BASEDIR."forum/viewforum.php?forum_id=".$data2['forum_id']."&forum_cat=".$data2['forum_cat']."'><span class='small'>".trimlink($data2['forum_name'],45)."</span></a></td>
<td width='8%' class='tbl1' style='white-space:nowrap'> <a href='".BASEDIR."forum/viewthread.php?forum_id=".$data2['forum_id']."&thread_id=".$data2['thread_id']."&pid=".$data2['ostatni_post']."#post_".$data2['ostatni_post']."'><span class='small'>".trimlink($data2['thread_subject'],45)."</span></a></td>
<td align='center' width='1%' class='tbl1' style='white-space:nowrap'>".$data2['nowych_postow']."</td>
<td align='center' width='2%' class='tbl1' style='white-space:nowrap'><a href='".BASEDIR."profile.php?lookup=".$data2['user_id']."'><span class='small'>".$data2['user_name']."</span></a></td>
<td align='center' width='1%' class='tbl1' style='white-space:nowrap'><span class='small'>".showdate("%d.%m-%H:%M",$data2['thread_lastpost'])."</span></td>
</tr>\n";
$tematow++;
}
echo "<tr>\n<td align='center' colspan='5' class='tbl1'><br><span class='small'>Na forum jest <b>".$rows."</b> nowych postów w <b>".$tematow."</b> tematach od Twojej ostatniej wizyty.</span></td>\n</tr>\n</table>\n";
} else {
echo "<center><br>".sprintf($locale['global_055'], $rows)."<br><br></center>\n";
}
closetable();
if ($tematow > 20) echo "<div align='center' style='margin-top:5px;'>\n".makePageNav($rowstart,20,$tematow,3)."\n</div>\n";
require_once THEMES."templates/footer.php";
?>
Mam nadziej?, ?e si? komu? przyda ;) .
EDIT
Edytowa?em, gdy? pope?ni?em zasadniczy b??d - wklei?em zawarto?? pliku forum_threads_list_panel.php, a nie new_posts.php. Serdecznie przepraszam.
W tej wersji ma?a zmiana - szeroko?? tabel dostosowuje si? do ilo?ci znaków w nazwie tematu.
Edytowane przez PtRM dnia 14.07.2009 10:30:13
The Real Mendosa=mendosa=Pablo the Real Mendosa=PtRM
|
| |
|