Serendipity zu WordPress umziehen

Möchte man einen Serendipity Blog zu einem WordPress umziehen, muss man leider etwas Handarbeit in diesen Vorgang stecken. Die Ausgangssitutation besteht dabei aus einem frisch installierten WordPress, sowie dem Serendipity. In der WordPress-Datenbank werden im ersten Schritt einige Modifikationen vorgenommen:

TRUNCATE wp_posts;
TRUNCATE `wp_postmeta`;
TRUNCATE `wp_term_relationships`;
TRUNCATE `wp_term_taxonomy`;
TRUNCATE `wp_comments`;
TRUNCATE `wp_commentmeta`;
DELETE FROM wp_terms WHERE wp_terms.term_id!=1;

Anschließend wird der Serendipity Importer für WordPress benötigt:

git clone https://github.com/ShakataGaNai/s9y-to-wp

In diesem gibt es eine Datei namens “serendipity.php” welche in den “wp-content/plugins/serendipity/” Ordner kopiert wird. Nach der Aktivierung des Plugins findet man im WordPress-Backend unter “Werkzeuge > Daten importieren” einen Serendipity Importer.

Der Serendipity Import

Der Serendipity Import

In den Importer werden die Verbindungsdaten der Serendipity-Datenbank eingetragen. Beim Prefix sollte bei einer Serendipity-Standardinstallation “serendipity_” stehen. Nun kann der Import für die einzelnen Teile der Datenbank gestartet werden. Die WordPress-Datenbank benötigt im Nachgang einige Aktualisierungen:

UPDATE `wp_comments` as a SET a.`comment_post_ID`= (SELECT b.`menu_order` FROM `wp_posts` as b WHERE a.`comment_post_ID`= b.`ID`);
UPDATE `wp_term_relationships` SET `object_id`=`object_id`+9000;
UPDATE `wp_term_relationships` as a SET a.`object_id`= (SELECT b.`menu_order` FROM `wp_posts` as b WHERE a.`object_id`-9000= b.`ID`);
UPDATE `wp_posts` SET `ID`=`ID`+9000;

Die folgenden Zeilen müssen nacheinander ausgeführt werden, da sie jeweils manuell angepasst werden:

UPDATE `wp_posts` SET `ID`=`menu_order`, `guid`=CONCAT("http://example.org/?p=",`menu_order`), `menu_order`=null; -- Replace MYURL.COM with your URL
SELECT `id`+1 FROM `wp_posts` ORDER BY `id` DESC LIMIT 0,1;
ALTER TABLE `wp_posts` AUTO_INCREMENT = XXX;

Der Wert “XXX” entspricht dabei dem Ergebnis der Abfrage (SELECT). Damit sind die Daten im WordPress gelandet und können nun nachbearbeitet (Bilder & Dateipfade) werden.

Piwik in Serendipity integrieren

Eigentlich ist es ja ganz einfach Piwik in Serendipity zu integrieren. Einfach das von Piwik bereitgestellt Codeschnippsel in die entries.tpl kopieren und schon funktioniert das ganze. So viel zur Theorie. Das Problem an den Template Dateien von Serendipity ist die Templateengine Smarty. Diese erlaubt keine { und } Zeichen. Diese müssen mittels {ldelim} und {rdelim} maskiert werden. Aus dem Codefragment:

try {
var piwikTracker = Piwik.getTracker(pkBaseURL + “piwik.php”, 1);
piwikTracker.trackPageView();
piwikTracker.enableLinkTracking();
} catch( err ) {}

wird dann:

try {ldelim}
var piwikTracker = Piwik.getTracker(pkBaseURL + “piwik.php”, 1);
piwikTracker.trackPageView();
piwikTracker.enableLinkTracking();
{rdelim} catch( err ) {ldelim}{rdelim}

Damit funktioniert das ganze auch unter Serendipity :)

Weitere Informationen gibt es unter:
http://50226.de/piwik-in-serendipity.html
http://board.s9y.org/viewtopic.php?f=10&t=15683

Podcasting unter Serendipity

Wer Podcasting unter Serendipity betreiben möchte, der sollte sich das Plugin Easy Podcasting Plugin anschauen. Dieses kümmert sich dann darum, die entsprechenden Mediendateien in den RSS Feed zu integrieren oder auf Wunsch einen passenden Player auf der Seite anzuzeigen. Das Plugin kann dabei über SPARTACUS (Serendipity Plugin And Repository Tool Access Customization/Unification System) installiert werden.