Es war nun schon öfter der Fall, dass wir eine Typo3-Seite aufgesetzt haben und eine Blog-Funktion integrieren wollten. Frage ist dann, was nimmt man für eine Extension, die all das kann, was wir brauchen. Eine Antwort darauf haben wir bisher nicht finden können. Nur eins wissen wir: ttnews und die anderen News-Systeme von Typo3 können es nicht. Leider!
Wir haben uns dann entschieden Wordpress als Blog-System zu nutzen. Die Integration in die bestehende Typo3-Seite ist aber leider nicht so einfach möglich.
Ein großes Problem ist es den Seitenbaum aus Typo3 zu übernehmen, in welchem die eigentlichen Content-Seiten gespeichert sind. Wordpress soll also als reines Blog-System laufen ohne die “Seiten”-Funktion.
Also haben wir uns das Problem mal genauer angeschaut. Zwei Lösungsansätze gibt es:
Wir haben uns für Variante b entschieden, da das auslesen der Datenbankstruktur sicherlich recht aufwendig ist. Außerdem ist server-übergreifender Datenbank-Zugriff aus sicherheitstechnischen Gesichtspunkten nicht zu vertreten. Liegt also die Wordpress-Installation auf einem externen Server, wäre hier schon Ende!
Der Ansatz der zweiten Variante scheint da sinnvoller.
Per TypoScript lassen wir uns von Typo3 die Seitenstruktur ausgeben. Die Blog-Seite wird im Typo3 als externer Link realisiert.
wordpress_menu = PAGE wordpress_menu.typeNum = 111 wordpress_menu.10 < lib.menu wordpress_menu.config.metaCharset = utf-8 wordpress_menu.config.additionalHeaders = Content-Type:text/html;charset=utf-8 wordpress_menu.config.absRefPrefix = http://www.example.com/
Die erstellte Seite besteht aus verschachtelten unordered Lists, eingebettet in eine HTML-Datei.
Der aktive Navigationspunkt “Blog” soll auch aktiv sein, sobald wir uns im Blog befinden.
Daher haben wir hier einen Trick angewendet, wir erstellen im Typo3-Seitenbaum eine Unterseite zu Blog. Diese können wir dann als Startpunkt für unsere Verlinkung nutzen. Dazu mehr im nächsten Schritt.
Im Wordpress-Theme können wir die generierte Seite nun weiter verarbeiten. Die Datei wird mittels der PHP-Funktion implode() erst einmal in eine Variable gelesen um in weiteren Schritten die eigentliche Navigation (die im Body-Tag eingeschlossen ist) zu isolieren:
$nav = implode(" ", file ("http://www.example.com/index.php?id=28&type=112"));
$nav = explode ("<body>", $nav);
$nav = explode ("</body>", $nav[1]);
echo $nav[0];
Nun wird als eine saubere Navigationsliste ausgegeben.
Die Datei, die wir auslesen ist http://www.example.com/index.php?id=28&type=111. Der Typ wird im TypoScript als wordpress_menu.typeNum definiert. Die id ist die Seiten-Id der Unterseite. Somit bekommt Typo3 das Gefühl sich wirklich im Blog zu befinden und kann somit auch eine entsprechende aktive Klasse einbinden.
Beim Footer ist es genauso, wie bei der Navigation. Wir erstellen per TypoScript die Seite. Allerdings müssen wir hier einen anderen Seitentypen verwenden, beispielsweise 112. Und den Inhalt sollten wir auch aus dem entsprechenden Footer-Element auslesen und nicht aus der Navigation.
Im Wordpress kann man sich die Seite dann wieder genauso holen, wie bei der Navigation. Die Seiten-ID kann man hierbei entsprechend belassen.
Man erleichtert sich durch dieses Vorgehen die Pflege der Website ungemein. Man hat schließlich nur einen Seitenbaum den man pflegen muss. Und auch nur einen Footer. Die Seitenleiste und der Content-Bereich ist bei einem Blog meistens sowieso anders, als auf den übrigen Seiten.
Ein großes Manko ist allerdings, dass man für beide Systeme dennoch ein eigenes Template aufsetzen muss. Hier eine entsprechende Lösung zu finden ist wohl eher schwer. Vielleicht fällt uns aber auch da etwas ein!
Anleitung Blog CMS CSS3 Drupal FAQ Haufe HTML5 Konferenz Kurzreferenz PHP TYPO3 TypoScript Weiterbildung WordPress
WP Cumulus Flash tag cloud by Roy Tanck and Luke Morton requires Flash Player 9 or better.
das rockt! vielen dank, genau was ich gesucht habe.
bei mir hat es gereicht, lib.menu mit einer aufzählung (ol) zu wrappen, und dann habe ich eben mit explodet.