Hallo,
ich habe folgendes Problem:
ich habe in meinem Forum das ezPortal eingebaut. Dort gibt es die Funktion "Neue Beiträge seit dem letzten Besuch" und in klammern dahinter die Anzahl.
Diese Anzahl gibt nur einfach die Anzahl der Beiträge, die nach dem letzten Forumbesuch gepostet wurden, ohne zu prüfen, ob der Besucher diese Beiträge überhaupt lesen kann (d.h., ob er für das jeweilige Forum Leserechte hat).
Es passiert daher immer wieder, dass jemand dort die Angabe sieht: "Neue Beiträge seit dem letzten Besuch (5)" und wenn er darauf klickt, um die Suche aufzurufen, dann kommt nur die Meldung "Keine Beiträge entsprechen Ihren Kriterien." (weil die Suche dann schon richtig sucht, d.h. prüft, welche Beiträge der User lesen darf).
Weiß jemand vielleicht eine einfache Möglichkeit, auch die Zählung der Beiträge in ezPortal davon abhängig zu machen, welche Foren man lesen kann?
Ich habe versucht, das Verfahren von search.php abzukupfern, komme dort aber nicht ganz klar, weil ich kein PHP-SuperProfi bin.
Wer kann mir da einen Hinweis geben?
TIA
Stanley
ezPortal Neue Beiträge nur aus erlaubten Foren zählen
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Ok den Versuch ist es wert! Einmal die portal.php öffnen / suchen
ersetzen durch
Rückmeldung erwünscht. easy
Code: Alles auswählen
$sql = "SELECT COUNT(post_id) as total
FROM " . POSTS_TABLE . "
WHERE post_time >= " . $userdata['user_lastvisit'];
Code: Alles auswählen
// Search for readable posts since last Login
$sql = "SELECT * FROM " . FORUMS_TABLE;
if(!($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query forums information', '', __LINE__, __FILE__, $sql);
}
$forums = array();
while( $row = $db->sql_fetchrow($result) )
{
$forums[] = $row;
}
$db->sql_freeresult($result);
$is_auth_ary = array();
$is_auth_ary = auth(AUTH_ALL, AUTH_LIST_ALL, $userdata);
$hidden_forums = '\'start\'';
for( $i = 0; $i < count($forums); $i++ )
{
if(!$is_auth_ary[$forums[$i]['forum_id']]['auth_read'])
{
if( $hidden_forums == '\'start\'' )
{
$hidden_forums = $forums[$i]['forum_id'];
}
else
{
$hidden_forums .= ','. $forums[$i]['forum_id'];
}
}
}
$sql = "SELECT COUNT(post_id) as total
FROM " . POSTS_TABLE . "
WHERE forum_id NOT IN (" . $hidden_forums . ")
AND post_time >= " . $userdata['user_lastvisit'];
Danke,
habe den Code jetzt eingebaut, muss nur noch die Usermeldung abwarten, ob das jetzt klappt (bei mir gab es mit der Zählung nie Probleme, weil ich als Admin alle Foren lesen kann).
Melde mich wieder, denn wenn das klappt, dann könnte man diesen Codeschnipsel im entsprechenden Bereich veröffentlichen.
Stanley
habe den Code jetzt eingebaut, muss nur noch die Usermeldung abwarten, ob das jetzt klappt (bei mir gab es mit der Zählung nie Probleme, weil ich als Admin alle Foren lesen kann).
Melde mich wieder, denn wenn das klappt, dann könnte man diesen Codeschnipsel im entsprechenden Bereich veröffentlichen.
Stanley