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.