Zum Inhalt springen

externes forum einbinden

Erstellt am 30. März 2004 · 14 Antworten · letzte Antwort am 19. Februar 2005

Tags: Frage

sewid ·

hi!

kann ich irgendwie ein phpbb - forum in meine typo3 - seite einbinden? ich traue der extension mit dem phpbb - forum nicht. gibt's da irgendeinen tipp oder trick um externe seiten einzubinden?

gruß
- sewid

TW ·
sewid schrieb

hi!

kann ich irgendwie ein phpbb - forum in meine typo3 - seite einbinden? ich traue der extension mit dem phpbb - forum nicht. gibt's da irgendeinen tipp oder trick um externe seiten einzubinden?

gruß
- sewid

hi
über den seitentyp externe URL vielleicht

cu
thorsten

thoko ·

Du kannst einfach die index.php als Script einbinden, solltest dann dort aber nach Möglichkeit das Seitendesign so anpassen, dass es zu Deiner Seite passt.

Schneller wird das System dadurch aber nicht...

Wenn Du die Frontend-User integrieren willst: Sorry, you lost. MySQL kennt (noch) keine Views, und Typo3 kann biser nur mit MySQL arbeiten.

maxhb ·

Hi!

sewid schrieb

kann ich irgendwie ein phpbb - forum in meine typo3 - seite einbinden? ich traue der extension mit dem phpbb - forum nicht. gibt's da irgendeinen tipp oder trick um externe seiten einzubinden?

Ich würde ein separates Template für die Seiten mit dem Forum erstellen und dort per IFRAME das PHPbb einbinden...
So behälst Du die navigation Deiner Web Site und hast das Forum (scheinbar) integriert.

CU
maxhb

thoko ·

IFrame - hmpf. Nur weil die Layer-Menus nicht immer mit jedem Browser funktionieren muss man nun nicht auch noch die Leute aussperren, die einen einfacheren Browser haben (manche Handheld-Clients bspw., auch einige Devices für Blinde etc. können sowas (noch) nicht).

Dann doch lieber die index.php als externes Script einbinden - der Effekt ist der gleiche, aber technisch schöner.

maxhb ·

Hi!

thoko schrieb

IFrame - hmpf. Nur weil die Layer-Menus nicht immer mit jedem Browser funktionieren muss man nun nicht auch noch die Leute aussperren, die einen einfacheren Browser haben (manche Handheld-Clients bspw., auch einige Devices für Blinde etc. können sowas (noch) nicht).

Naja, phpBB für blinde ... wohl eher nicht, ob mit oder ohne Iframes

thoko schrieb

Dann doch lieber die index.php als externes Script einbinden - der Effekt ist der gleiche, aber technisch schöner.

Und wenn man dann auf einen Link innerhalb des Forums klickt, was passiert dann? Dann wird eine neue Seite aus dem Board geöffnet und die Navigation der Ursprungsseite ist weg. Finde ich technisch nicht schöner...

Ist mir aber auch völlig egal, ist ja nur ein Vorschlag 😉

CU
maxhb

tobstar ·

Hat das denn jetzt eigentlich irgendwie geklappt?
Ich stehe gerade vor dem gleichen Problem und bin noch nicht so sicher, wie ich es hinbekommen soll?! o.O o.O
Ich hätte es auch gerne im "Rahmen" meiner Seite und nicht in einer extra Seite. Auf die FE user will ich gar nicht zu greifen, die hab ich eh nicht, weil außer dem Forum alles für alle offen steht. (Zumindest im Moment)!

Hat jemand eine Idee, wie ich das am besten anstelle? Wenn ich es einfach als externe url angebe, dann öffnet es sich im gleichen Fenster, also meine Seite ist dann weg, wie kann ich zumindest das umstellen?

DANKE 8-) 8-)

Marc ·

hi,

hab das original phpBB über iframe eingebunden (besser is eigentlich über object... ) allerdings is eins mist: um einen scrollbalken wirst du nicht drumrumkommen:
bei einer höhe von 100% nimmt er nur die höhe des browserfensters--> scrollbalken
und bei keiner höhenangabe --> scrollbalken

falls du da ne schönen lösung hast...

(die extension is meiner meinung nach nicht fehlerfrei, zumindest bei mir... :o )

Marc

tobstar ·

OK dann schonmal vielen Dank, ich werde das am Wochenende mal ausprobiern, oder wann immer ich dazu komme. Hab das Forum erstmal hinten angestellt, muss mich jetzt mal um meine BE Benutzer kümmern, damit mal was voran geht 😉!
Werde aber meine Erfahrung mit dem org. phpbb dann hier posten, vielleicht finde ich ja noch eine gute lösung.
8-) 8-)

Pawel ·

Ich weiss nicht, ob dieses Thema noch von Interesse ist, aber ich beschreibe mal den Weg, den wir bei http://www.planet-fiction.de gewählt haben.
Er ist zwar nicht schön, aber funktionell. Man muss allerdings auch betrachten, dass http://www.planet-fiction.de und das Forum auf zwei verschiedenen Servern liegen und wir nur kleine Brücken zwischen den Systemen legen. (Die Seite befindet sich zur Zeit noch im Aufbau).

Hier die Schritte:
1. Man muss rausfinden, wo in der SQL Datenbank die Einträge für die Seiten sind. Das ist noch ganz einfach.
Ein typischer Query dafür ist:

SELECT `title`,`uid` FROM `pages` WHERE `pid`=666 && `hidden`=0 && `deleted`=0 ORDER BY `sorting`;

Dabei steht:
uid & title für die Werte die man braucht. Den Titel der Seite und seine ID, um es später verknüpfen zu können.
pid für die previous ID. Also dem Wert, dem man im Typo Template im Menü (z.B. HMENU) als special.value zugewiesen hat.
hidden und deleted sorgen nur dafür, dass keine gelöschten und versteckten Menüeinträge angezeigt werden.
ORDER BY `sorting` sortiert das ganze nach dem Schema, wie man es in Typo hat.

2. Jetzt wo man weiss, wo die Menüs sind, muss man sie nur noch in phpBB einbauen.
Dazu muss man die includespage_header.php im phpBB Verzeichnis bearbeiten.
Ab Zeile 345 in der page_header.php sollte folgendes stehen:

$template->assign_vars(array(
	'SITENAME' => $board_config['sitename'],
	'SITE_DESCRIPTION' => $board_config['site_desc'],
	'PAGE_TITLE' => $page_title,
   ...

Davor setzen wir jetzt den Zugriff auf die Datenbank von Typo3.

$db_typo = new sql_db("URL zum SQL Server", "User", "Passwort", "Name der Datenbank", true);

Dabei kann man es wie hier als String machen oder per Variablen.
Als nächstes muss man per php auf die Menüs zugreifen.
Das funktioniert ganz einach mit den vorher gefunden SQL-Queries:

$rs=$db_typo->sql_query("SELECT `title`,`uid` FROM `pages` WHERE `pid`=666 && `hidden`=0 && `deleted`=0 ORDER BY `sorting`");

Wir haben jetzt die Rohdaten, man muss sie nur formatieren.

$menu ="";
while($row=$db_typo->sql_fetchrow($rs)){
$menu = $menu .'<div class="menu"><a href="http://www.planet-fiction.de/index.php?id='.$row['uid'] . '">' . $row['title'] . '</a></div>';
}
$db_typo->sql_freeresult($rs);

Als letzten Schritt muss man die Daten noch ins phpBB Template schreiben. Das geht ganz einfach. Wie bei Typo3 mit Markern, geht das auch bei phpBB. Die Liste der Marker steht unter:

$template->assign_vars(array(
   'SITENAME' => $board_config['sitename'], 
   ...

Damit das phpBB Forum den Marker für die Verknüpfungen übernimmt schreibt man ganz einfach:

$template->assign_vars(array(
   'MENU' => sprintf($menu),
   'SITENAME' => $board_config['sitename'], 
   ...

Jetzt haben wir einen Marker erschaffen, der als Inhalt das Typo3 Menü hat (in ähnlicher Form).

3. Den Marker in das phpBB Template einbauen.
Wie bei Typo3 muss man auch den Marker ins Template einbauen. Dazu editiert man die template[Template Name]overall_header.tpl. Dort setzt man an die Stelle, wo man das Menü haben will den Marker. Anstatt wie bei Typo3 mit 3x # am Anfang und am Ende benutzt man hier geschweifte Klammern:

<td id="mein_menue">
  {MENU}
</td>

4. Typo3 und Forum sollten gleich aussehen. Das ist jetzt eine kleine Spielerrei mit HTML und sollte keine Probleme darstellen.

Ich hoffe, ich konnte es verständlich erklären, wie wir das bei http://www.planet-fiction.de gelöst haben. Dabei sind noch paar Sachen zu sagen:

  • das System basiert auf zwei Templates, einmal das von Typo3 und das andere von phpBB. Man muss ziwschen den beiden Unterscheiden!

  • ich habe noch nie mit php gearbeitet und deswegen gibt es keine Garantie für Fehlerfreiheit

P.S: Besucht uns doch mal unter http://www.planet-fiction.de 🙂

EDIT:

$db_typo->sql_close();

sollte man am Ende natürlich nicht vergessen.

manfredo ·

Hallo Pawel,

hab das Forum nach deiner Anleitung angepasst - funktioniert auch ganz gut wenn man erkennt, dass mit "tabelle" (Code: 3) der Name der Datenbank gemeint ist.

Mein Problem :

Ich bekomme zwar das Menue angezeigt, leider aber auch alle Seiten die "Nicht im Menue" und sogar alle Sysfolder im Seitenbaum. Wenn ich "hidden=" auf 1 setzte wird gar kein Menue angezeigt.

Eine Ahnung wie ich das weg bekomme....

gruß
manfredo

Pawel ·

Danke für die Verbesserung, wurde sofot aufgenommen.

Zu deinem Problem:
Es kann sein, dass die Struktur ein bißchen anders ist.
Gib mal folgendes in phpAdmin ein:

SELECT * FROM `pages` WHERE `pid`=666;

Wobei pid natürlich der Schlüssel für den Ordner sein soll, welcher als Ursprung dient.
Dabeo sollte eine Tabelle rauskommen. Jetzt musst du nur noch die Rosinnen auspicken, also gucken, welche Gemeinsamkeiten die Menüeinträge haben, die du haben willt. 🙂

manfredo ·

Hallo Pawel,

yeah, vielen Dank!

Der Tipp mit phpAdmin hat es gebracht. Nachdem ich "nav_hide" in den Seiten bzw. Sysfolder, die nicht im Menue erscheinen sollen, aktiviert hatte stimmt das Menue jetzt.

Bei mir ist dann noch ein zweiter Fehler aufgetaucht. Nach Klick auf ein Forum (Thema) gab es einen Datenbankfehler und zwar wollte phpBB2 wieder auf die Datenbank für Typo3 zurückgreifen. Hab mir jetzt so geholfen, dass ich nach dem schliessen der Typo3 DB, die phpBB2 DB wieder aufgerufen habe.

Liegt evt. daran dass das Forum und Typo3 auf einem Web laufen, jeweils mit eigener Datenbank und ich als URL der DB "Localhost" angebe. Kann das schlecht abschätzen woran das liegt, da leider nicht sehr fit in SQL und PHP.

gruß
manfredo

Haggis ·
Pawel schrieb

Dabei steht:
uid & title für die Werte die man braucht. Den Titel der Seite und seine ID, um es später verknüpfen zu können.
pid für die previous ID. Also dem Wert, dem man im Typo Template im Menü (z.B. HMENU) als special.value zugewiesen hat.
hidden und deleted sorgen nur dafür, dass keine gelöschten und versteckten Menüeinträge angezeigt werden.
ORDER BY `sorting` sortiert das ganze nach dem Schema, wie man es in Typo hat.

Moin! Erstmal vielen Dank für deine ausführliche Anleitung. Leider komme ich nicht weiter. Habe zwar alles so eingetragen wie beschrieben, aber das Menü wird einfach nicht angezeigt. Ich denke mal es liegt daran, dass ich für die "pid" einfach immer die Seiten-ID eingesetzt habe. Aber woher bekomme ich die pid des Templates/Menüs? Danke schonmal im Voraus!

Haggis

Haggis ·

Hat sich erledigt! Habe in der Tabelle "pages" einfach nach der uid der Forenseite gesucht und dort abgelesen.

@Pawel: Funzt einwandfrei, danke! 😃