Seite 1 von 3

phpBB2 an Page anpassen

Verfasst: 01.05.2007 16:46
von ThoRr
Hi!
Ich hab eine schwierige Aufgabe, die ich alleine nicht lösen kann: Ich möchte mein phpBB Board in die Seite einpassen.
Hier mal die Sachen, die ich ändern möchte:
  • Eigener Header, keine Links wie "Einloggen" oder "Registrieren"
  • Das Board soll von meinem eigenen Design umgeben sein, Links zu Boardsuche, Boardteam (selbstprogrammierte Teamseite!), Boardregeln, Mitgliederliste (auch eine eigene, nicht von phpBB) sollen an der Seite erscheinen.
  • Wenn man auf der Homepage eingeloggt ist, soll man auch im phpBB Board eingeloggt sein.
  • Überall, wo ein Nutzername steht, auf user_profil.php?id=x verlinken. Ich habe nähmlich ein eigenes User-System.
  • Signatur aus db.users Spalte signature auslesen
  • Die Buttons unter dem Beitrag ("PM", "Profil"...) sollen nicht mehr vorhanden sein, das ich ein eigenes User-Profil und PN-Center benutze.
Joa, das wars erstmal :D
Weiß jemand, wie man sowas macht?
MfG Torben

Verfasst: 01.05.2007 16:51
von gloriosa
Hallo,
schön das Du es vorgezogen hast Dich vor dem Posten nicht zu informieren. :oops:

Deshalb jetzt nur der Hinweis auf die Homepage und die, viel zu selten benutzte, boardeigene Funktion [ externes Bild ] Suchen um Informationen zu finden. :wink:

Verfasst: 01.05.2007 16:51
von Jan500
hilfreich sollte evtl das sein:

KB:forum_homepage
KB:phpbb_seite
KB:template_system
KB:template_syntax
frame ist eher unpraktisch in deinem fall denke ich aber sonst istd as hilfreich: KB:frameset

Jan

Verfasst: 03.05.2007 16:36
von ThoRr
Vielen Dank erstmal für die Antworten! Allerdings ist das nur ein Teil von dem, was ich brauche. phpBB soll auch die User aus der Datenbank users und nicht die eigenen benutzen.

PS: Hab da noch ne Frage am Rande: Das Template wird erst zum Schluss geparst, oder? Kann ich beliebig meine eigenen Codes im Dokument benutzen? Ich möchte neben dem User nähmlich noch ein Bildchen einfügen, dass anzeigt, ob der User online oder offline ist (was ebenfalls mit eigenem System mitgeloggt wird): <img src="status.php?id={postrow.USER_ID}" alt="{postrow.POSTER_NAME}" title="Status von {postrow.POSTER_NAME}" /> Wenn es nicht schon eine "Variable" mit der aktuellen USer-ID als Inhalt gibt, muss die nähmlich selbst deklarieren. Wo mach ich das am Besten?

Verfasst: 03.05.2007 22:45
von gn#36
ThoRr hat geschrieben:Vielen Dank erstmal für die Antworten! Allerdings ist das nur ein Teil von dem, was ich brauche. phpBB soll auch die User aus der Datenbank users und nicht die eigenen benutzen.
Das könnte schwieriger werden, da wäre einiges umzubauen. Einfacher vermutlich, wenn du stattdessen die Daten automatisch synchronisieren lässt und die direkte Registrierung über das Forum sperrst. Dann musst du nur dafür sorgen, dass die Daten korrekt in die Usertabelle übertragen werden, im anderen Fall wären vermutlich großflächige Änderungen an vielen Strukturen nötig (die Usertabelle wird bei den Forumsabfragen, den Themenabfragen und vielen anderen Abfragen verwendet, es dürften in erster Näherung 70 bis 90% der Dateien verändert werden müssen, bei der Synchronisation deutlich weniger).
PS: Hab da noch ne Frage am Rande: Das Template wird erst zum Schluss geparst, oder? Kann ich beliebig meine eigenen Codes im Dokument benutzen? Ich möchte neben dem User nähmlich noch ein Bildchen einfügen, dass anzeigt, ob der User online oder offline ist (was ebenfalls mit eigenem System mitgeloggt wird): <img src="status.php?id={postrow.USER_ID}" alt="{postrow.POSTER_NAME}" title="Status von {postrow.POSTER_NAME}" /> Wenn es nicht schon eine "Variable" mit der aktuellen USer-ID als Inhalt gibt, muss die nähmlich selbst deklarieren. Wo mach ich das am Besten?
Die Variable dürfte es noch nicht geben. Einfach die viewtopic.php öffnen und z.b. direkt nach diesem Code hinzufügen:

Code: Alles auswählen

	$template->assign_block_vars('postrow', array(
		'ROW_COLOR' => '#' . $row_color,
		'ROW_CLASS' => $row_class,
		'POSTER_NAME' => $poster,
das System ist in der Knowledge Base beschrieben: KB:template_syntax
Die Variable $poster_id enthält die vermutlich gewünschte ID des Posterstellers des aktuellen Posts. Statt hier ein dynamisch erzeugtes Bild zu verwenden könntest du allerdings den Code der online/offlinestatus prüft auch in der viewtopic.php einbauen, z.b. direkt vor dem oben geposteten Code Segment. Dann könntest du in der Variable je nach Status den Link zu einem anderen statischen Bild speichern.

=> Ja, die Ausgabe erfolgt ganz am Ende. Die Daten zum aktuellen Post werden aber in den oben geposteten Zeilen (und den direkt darauf folgenden) festgesetzt, so dass die Berechnung hier vorher erfolgen sollte und dann das Ergebnis mit in den Block eingebaut werden sollte.

Verfasst: 08.05.2007 17:39
von ThoRr
Oh, es ist ja ne neue Antwort eingegangen :lol: Hab ich bis jetzt gar nich bemerkt. Vielen Dank für die große Hilfe! Ich werd mich gleich mal ransetzen. Achja, noch ne Frage zum Login: Also ich erstelle, wenn man sich einloggt einen Cookie, der die ID und einen einmaligen Code enthält und eine Session-Variable "ID" mit der ID des Benutzers. Wenn man nicht auf Logout klickt, ist man also immer durch den COokie eingeloggt. Wie kann ich realiesieren, dass phpBB sich genauso verhält. Ich würde dann nähmlich in die logout.php nohc den Logout-Befehl von phpBB packen und bei login.php das gleiche.

Verfasst: 09.05.2007 14:17
von ThoRr
Hab mir mal die Cross-Referenz angeschaut, aber so wirklich weiter hat mir das nicht geholfen :cry: Gibts da nicht einfach eine einzige Funktion, die das Login/Logout ausführt?

Verfasst: 09.05.2007 23:35
von gn#36
Ich muss zugeben dass ich mich mit Login/Logout noch nicht so besonders beschäftigt habe, beides ist aber in der login.php realisiert. phpBB setzt aber ebenfalls einen Cookie mit dem der Loginstatus erkannt wird, dies muss entweder in der login.php passieren oder in der sessions.php, die Abfrage des Cookies passiert definitiv in der sessions.php da die Login.php ja nicht in jedem Seitenaufruf verwendet wird.

Verfasst: 10.05.2007 14:53
von ThoRr
Hi!
Vielen Dank für die Antwort. Ich hab jetzt versucht, einen MySQL befehl in login.php auszuführen:

Code: Alles auswählen

					// Eigene Aenderung: Counter erhöhen:
					$db->sql_query('UPDATE users SET sessions = sessions + 1 WHERE id = ' . $row['user_id']);
Das kommt nach

Code: Alles auswählen

// Reset login tries
					$db->sql_query('UPDATE ' . USERS_TABLE . ' SET user_login_tries = 0, user_last_login_try = 0 WHERE user_id = ' . $row['user_id']);
Aber iwie funzt das net, es wird nicht ausgeführt und wenn ich redirect weiter unten auskommentiere, ezgit das auch keine Wirkung :cry: Woran könnte das liegen?

Verfasst: 10.05.2007 18:01
von gn#36
Lass dir doch mal den passenden Fehler ausgeben:

Code: Alles auswählen

if(!$db->sql_query('DEIN SQL BEFEHL'))
{
message_die(GENERAL_ERROR, 'Fehlerhafter Befehl','',__LINE__,__FILE__,'DEIN SQL BEFEHL');
}
Am besten ersetzt du 'DEIN SQL BEFEHL' durch eine Variable, aber vielleicht kommst du ja so selbst auf den Fehler.

Als Tipp: Vergleiche doch mal deinen Code mit dem Code, nach dem du es einfügst. Da finden sich gewisse Unterschiede was den Namen der Tabelle angeht...
Außerdem ist mir das Feld "sessions" in der Usertabelle auch nicht geläufig...

Oder soll das eine gänzlich andere Tabelle sein?

Nebenbei bemerkt wird der Code natürlich nur dann ausgeführt wenn du dich korrekt neu einloggst...