Seite 1 von 1

phpbb2 Login mit Homepage Loginsystem verbinden?

Verfasst: 08.02.2007 14:15
von mlunow
Hallo Leute!

Ich habe vor auf meiner Homepage (www.koch-idee.at) ein phpbb einzubauen. Es läuft momentan auch schon ganz gut, jedoch quasi unabhängig von der Homepage selbst.
Es läuft zwar auf den gleichen Server und auch der selben DB, aber halt in einem eigenen Fenster (Popup) und (was das größte Problem ist) mit einen eigegenen Usersystem.

D.h. die unser der Homepage, die sich bereits registiert haben, müssen sich separat nochmals fürs forum registrieren... :(

Gerne würde ich das Loginsystem zusammenlegen. Hab mir das auch schon angeschaut und werde einfach die Usertabelle des phpbb verwenden.

Nun stoße ich aber auf ein Problem:
Wie stelle ich das am besten an, dass das Forum in der bestehenden Homepage angezeigt wird. Die Webseite ist mit Tabellen aufgebaut und ich include (je nach übergebener GET-Var) die Seite in den rechten teil meiner Tabelle.

Das phpbb kann ich aber nicht einfach includen, da ich ja dann jeden Link anpassen müsste, oder?
Und wie komme ich drauf ob der User angemeldet ist oder nicht, bzw. welcher User es ist? Gibts da eine getUserID() oder isLoggedIn() Funktion, o.Ä?

Hab auch schon mit dem Gedanken gespielt die Homepage quasi in das phpbb template einzuarbeiten... ist aber wohl auch mehr als aufwendig!?

Mit der Bitte um Tipps und Ratschläge,
mlunow :)

Verfasst: 08.02.2007 17:28
von gn#36
Ich denke mal, dass das, was außer dem Forum noch angezeigt wird einigermaßen statisch ist (sich also nicht ändert)? Wenn dem so ist, kannst du einfach das was zusätzlich zum Forum erscheint einfach in den Page Header einbauen. (editiere einfach den HTML Code in der overall_header.tpl im Templateverzeichnis deines Styles und baue das Forum in den Header ein).
Falls das nicht so sein sollte könnte es kompliziert werden.
Ich habe auch so einen Fall gehabt, dass ich zusätzliche dynamische Inhalte neben dem Forum darstellen wollte und musste hierfür ein wenig mehr machen. Im Prinzip würde es hierfür reichen eine Funktion oder ein Skript o.ä. zu besitzen, welches den zusätzlichen Inhalt generiert, aber nicht ausgibt sondern in einer Variablen speichert (notfalls mit Output buffering oder suchen von echo und ersetzen durch $text .= oder so). Diese Variable kann dann an das Template übergeben werden und im Style an beliebiger Stelle mit eingebaut werden. Hierzu würde ich die Lektüre der KB empfehlen, bzw. der Themen die sie zur Templatesyntax ausspuckt. Dann kann man z.B. eine Templatevariable vor und eine nach der Forumsausgabe einbauen die jeweils den restlichen Code enthalten. So habe ich es im Prinzip gemacht. Wenn sich diese Ausgabe zyklisch ändert sollte man natürlich versuchen, die gleichen Ausgabefunktionen benutzen zu können wie die, welche für die Homepage benutzt werden, das ging in meinem Fall aufgrund von gravierenden Inkompatibilitäten leider nicht (unterschiedliche Funktionen in Datenbankobjekt mit dem selben Namen, anderes Templatesystem).

Ich hatte dann nur noch Probleme mit zusätzlich benötigten Variablen die per GET übergeben werden sollten.
Hierzu musste in der funktion append_sid() der folgende Code hinzu:

Code: Alles auswählen

//GN STYLESHEET APPEND:
	if(isset($_GET['stylesheet']))
	{
		$stylesheet = intval($_GET['stylesheet']);
		if($stylesheet < 10 && $stylesheet > 1)
		{
			$stylesheet = 'stylesheet='.$stylesheet;
			$url .= ( ( strpos($url, '?') !== false ) ?  ( ( $non_html_amp ) ? '&' : '&' ) : '?' ) . $stylesheet;
		}
		
	}
Danach wird die Variable stylesheet - sofern sie vorher an das Forum übergeben wurde - an fast alle Links etc. angehängt. Fast alle deswegen, weil ein paar Dinge offenbar nicht mit dieser Funktion bearbeitet werden um die Session Id anzuhängen so dass ich die noch per Hand nachbearbeiten musste (ein paar Redirects waren das glaube ich, in viewtopic eine Sache glaube ich und in login auch eine).

Verfasst: 10.02.2007 14:02
von mlunow
Vielen Dank für die Antwort.
Da ich sehr viel dynamischen content habe, werde ich das Forum doch besser als popup von der webseite aus öffnen.

ich möchte aber gerne das loginsystem vom board verwenden.
habe auch schon wie hier beschrieben die loginbox eingebaut, die den user nach erfolgreichem login wieder auf die homepage zurückgeschickt.
funktioniert einwandfrei.

nun muss ich für die aktionen des users auf der homepage noch rausfinden OB er eingeloggt ist und WELCHER user eingelogged ist. hab mir dazu auch schon die sessions.php und die datenbank-daten angesehen, werd aber nicht wirklich schlau daraus. :-?

wie kann ich erkennen ob, und welcher user eingelogged ist? muss ich dazu das cookie auslesen bzw die session?!


thx malu

Verfasst: 10.02.2007 15:48
von gn#36
Vielleicht solltest du über einen Iframe nachdenken? Dann würde das Forum in diesem Frame angezeigt und du bräuchtest dir über den sonstigen Inhalt keine Gedanken machen...

Verfasst: 10.02.2007 16:24
von mlunow
ah danke!
ja das forum über einen IFrame einzubinden wär auch eine gute Idee.
Funktioniert das problemlos?

Da ich jedoch auch noch andere userbezogenen Daten (Persönliches Kochbuch, Rezepteingabe, usw) verwalten will, muss ich irgendwie draufkommen welcher User eingeloggt ist.

Wie kann ich das am besten machen (Session,Cookies)?

Verfasst: 10.02.2007 16:30
von gn#36
Dazu gibt's was in der KB, es gibt "Blanko" Forumseiten. Da kann man dann natürlich auch "nur" den Sessionteil verwenden und bekommt dann genau wie im Forum selbst die Userdaten im Array $userdata. Das könnte aber kompliziert werden, wenn Forum und Homepage inkompatibel sind (unterschiedliche Datenbankobjekte, unterschiedliche Datenbanken o.ä.)

Iframes gehen nur dann schief, wenn der Browser das nicht unterstützt, in dem Fall müsstest du dann z.B. einen Link zum Forum einbauen, oder vielleicht auch ein Skript, welches weiterleitet, wenn Iframes nicht unterstützt werden.