Import alter Beiträge aus 2005/2006
Nach langer langer langer Zeit habe ich es endlich mal geschafft, meine alten Beiträge aus 2005/2006 zu importieren. An die Feed-Leser: Evtl. zeigt euer Reader jetzt eine Menge (ca. 195) ungelesener Artikel an. Tschuldigung!
Es war insofern etwas blöd, da ich damals ein selbstgeschriebenes Weblog verwendete und die Daten daher nicht im üblichen Datenformat vorlagen. Immerhin war ich damals so clever, eine CSV zu machen.
2012 hatte ich diesbezüglich schon mal im Serendipity-Forum angefragt und Garvin gab mir einen Tipp, den ich nun endlich mal umsetzen konnte.
Nachdem ich dann die CSV noch ein bisschen vorbereitet hatte (Suchen & Ersetzen von einigen Syntax-Elementen durch HTML-Code) habe ich mich dann heute an den Import gewagt, den ich natürlich vorher in einer Testinstallation ausprobiert hatte.
Meine CSV sah im Grund erstmal so aus:
"ID","Zeit","Benutzer","Titel","Text_Short","Text_Long","Kategorie"
"1","2005-09-04 16:09:23","1","Server down","Ich bekomme Hass! Letzte Woche war noch alles schön und gut und heute fehlt plötzlich mein ganzes Blog-System :-(",,"4"
Mit Hilfe des Tipps von Garvin und einigem Ausprobieren kam ich dann am Ende zu folgendem PHP-Script zum Einlesen der Daten:
<?php
include 'serendipity_config.inc.php';
// if your csv has an header-line, set $row = 1 otherwise $row = 0;
$row = 1;
if (($handle = fopen("Blog_Eintraege.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$row++;
$entry_data = array(
'timestamp' => strtotime($data[1]),
'title' => $data[3],
'body' => $data[4],
'extended' => $data[5],
'isdraft' => 'false',
'authorid' => 1
);
echo "<p>Importiere Zeile ".$row." mit der Überschrift: ".$entry_data['title']."</p>";
serendipity_updertEntry($entry_data);
}
fclose($handle);
echo "<p>Import abgeschlossen</p>";
}
?>
Das Script und die CSV legt man im Hauptverzeichnis von Serendipity ab und ruft es dann im Browser auf und dann sollten alle Einträge importiert werden.
Sollten, weil es bei mir natürlich wieder nicht so ganz wollte. Der Befehl serendipity_updertEntry trägt auch automatisch die URL in die Sitemap ein und meldet an die Suchmaschinen das Update. Bei mir brach das Script dann (warum auch immer) nach 80-90 Einträgen ab. Ich habe dann einfach die entsprechend bereits importierten Beiträge aus der CSV gelöscht und den Import nochmal aufgerufen.
Fertig.
Kommentare
Ansicht der Kommentare: Linear | Verschachtelt