ezPortal Neue Beiträge nur aus erlaubten Foren zählen

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
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.
Antworten
StanleyG
Mitglied
Beiträge: 71
Registriert: 10.12.2006 20:33

ezPortal Neue Beiträge nur aus erlaubten Foren zählen

Beitrag von StanleyG »

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
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag von easygo »

Ok den Versuch ist es wert! Einmal die portal.php öffnen / suchen

Code: Alles auswählen

	$sql = "SELECT COUNT(post_id) as total
			FROM " . POSTS_TABLE . "
			WHERE post_time >= " . $userdata['user_lastvisit'];
ersetzen durch

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'];
Rückmeldung erwünscht. easy
StanleyG
Mitglied
Beiträge: 71
Registriert: 10.12.2006 20:33

Beitrag von StanleyG »

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
uran2358

Beitrag von uran2358 »

easygo hat geschrieben: ...

Rückmeldung erwünscht. easy

.

.
StanleyG
Mitglied
Beiträge: 71
Registriert: 10.12.2006 20:33

Beitrag von StanleyG »

easygo hat geschrieben:Rückmeldung erwünscht. easy
Hi,
die Zählung klappt jetzt wunderbar.
Ich würde empfehlen, den Code unter Snippets zu veröffentlichen.
Danke
Stanley
Antworten

Zurück zu „phpBB 2.0: Mod Support“