Seite 1 von 1
Forenticker-Problem (Nur für den User erlaubte Beiträge anze
Verfasst: 17.01.2005 22:26
von LordZed
Hi Leute!
Ich habe ein kleines Problem!
Hatte auf meiner Website einen Forenticker der soweit auch ganz gut geklappt hat. Hab einfach die Daten aus der mySQL-Tabelle ausgelesen.
Nun hab ich aber ein kleines Problem.
Ich will, dass User nur die letzten 5 Beiträge sehen, die sie auch im Forum sehen dürfen. Denn es isind ja nicht alle Foren für alle User sichtbar. Die Userdatei ist auf der Website verfügbar, also ist der User auf der Website als ein user im Forum identifiziert (sofern er eingeloggt ist).
Wie kann ich es machen, dass für den User die letzten 5 FÜR IHN SICHTBAREN/ERLAUBTEN Beiträge ausgegeben werden?
wisst ihr, was ich meine?
Verfasst: 18.01.2005 00:40
von QCO
Also ich weiß, was du meinst, aber ganz einfach wird das nicht, kann ich dir sagen...
Dein Freund und Helfer heißt in diesem Fall auth() und ist zu finden in includes/auth.php
Folgendes Codeschnippsel sollte dir helfen...
(Ich weiß nicht genau, auf welche Berechtigung du dich beziehst: es gibt VIEW, d.h. man kann das Forum öffnen und die Titel der Beiträge sehen, diese aber nicht lesen, bei READ kann man auch Beiträge lesen.
Falls du also READ meinst, in der ersten Zeile ersetzen.)
Code: Alles auswählen
// phpbb-Funktion, die uns die Rechte des Nutzers $userdata für alle Foren raussucht
$u_access = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata);
// wir schauen, welche Beiträge er sehen kann
$access_forums = array();
foreach($u_access as $forum_id => $forum_user_auth)
{
if( $forum_user_auth['auth_view'] == true )
{
$access_forums[] = $forum_id;
}
}
$sql_access_forums = implode(', ', $access_forums);
// und diesen Teil packst du jetzt bei deiner bisherigen SQL-Anfrage in den WHERE-Teil
$sql_access_forums = "forum_id IN ($sql_access_forums)";
(ungetestet, nur als Hinweis zu sehen, Warnung: ich hab schon seit einiger Zeit nicht mehr mit so "komplizierten" Sachen gearbeitet)
Achte auch noch darauf, was passiert, falls ein Nutzer überhaupt keine Foren einsehen kann...
Klappt so halb! ;)
Verfasst: 20.01.2005 17:30
von LordZed
Also ich habe das jetzt 1:1 mal übernommen und habe mir die Variable einfach mal ausgeben lassen.
Wenn ich nicht eingeloggt bin, dann Zeigt der mir die Foren 1,2,4,5,6,7,8 an in der Liste und wenn ich mich einlogge sollte eigentlich noch die 3 dazu kommen, was sie allerdings nicht tut.
Kann es sein, dass der nur die Rechte des Benutzers ausliest und die Rechte der Gruppe in der sich der User befindet nicht beachtet!?!
Im Admin-CP steht zwar, das ich als User zugriff auf alle Foren habe, aber das heißt ja noch nix! ^^
//EDIT
Hat sich schon erledigt!
Da ich das Script in einer Funktion aufgerufen habe musste ich erst dafür sorgen, dass $userdata auch in dieser verfügbar ist.
Dein Script klappt wenn ich mich nicht versehen hab (zumindest bist jetzt *fg*).
Vielen dank!
Verfasst: 20.01.2005 18:56
von LordZed
Ach noch ne Frage!
Ich weiß es nicht, aber macht der denn keine Probleme wenn ich zum Beispiel das Forum 1 und das Forum 11 habe?
Ich meine an dieser Stelle:
$sql_access_forums = "forum_id IN ($sql_access_forums)";
Da guckt der ja, ob die foren-id in den String steht. Was ist, wenn ich da 11 habe, der aber 1 sucht. Akzeptiert der das Forum dann?
//EDIT
Habe mir gerade die funktionsweise von IN angeguckt!
Hat sich also erledigt!
