Sunlog 2.2 export script for WordPress

I wrote a simple database export-script for Sunlog 2.2. It is a first try, read the information below carefully and BACKUP YOUR DATABASE before you try it.

Downloads:
Sunlog 2.2 export script Version 0.2 (4k)
Sunlog 2.2 export script Version 0.1 (4k)



/**
* Sunlog 2.2 export-script for WordPress
*
* Copyright (C) 2003-2004 Thomas Mellenthin (melle at gmx d0t at)
* http://www.mellenthin.de/sunlog/item00549.php
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*
* Changelog
* =========
*
* Version 0.2 12/21/04
* - fixed missing 'read-more' links
* - fixed problem concerning articles that are in multiple categories
*
* Version 0.1 07/22/04
* - initial Version
*
*
* Warning
* =======
*
* This script is a quick hack, YOU WILL LOOOOOOSE ALL YOUR DATA !!!
* The generated sql-script will drop all users (including admin),
* articles and comments!
* Please check the resulting sql-script thoroughly, before you inject
* it into your database.
*
*
* Preconditions
* =============
*
* - You have a backup of your wordpress-database.
* If not, start the backup NOW!
* - adodb (http://adodb.sf.net) is used to access the database.
* Just unzip the adodb-archive and adjust the path to adodb.inc.php
*
*
* Usage
* =====
*
* - Adjust the database parameters (see below)
* - Upload this script and the adodb-tree to your webserver
* - Open your webbrowser, type the url (i.e. http://your.web.server/export_sunlog22.php)
* - A download-box will popup, save the sql-file to your harddrive
* - adjust the image-URLs, sunlog uses something like 'images/bunny.jpg', but the
* wordpress image-url will be 'http://your.site/wp-content/bunny.jpg'. Do this by search
* and replace or use sed/awk/perl. My favorite toll is sed, so the command line will look
* like this:
*
* cat sunlog2wordpress.sql | sed 's/"\/images\//"\/http:\/\/your.site.com\/wp-content\//g' > sunlog2wordpress_images.sql
* - copy all images from the sunlog images-folder to the wordpress wp-content folder
* - Inject the sql-statements into your wordpress database using phpMyAdmin or typing
* "mysql -u username -p wp_databasename < sunlog2wordpress_images.sql" * - login using 'admin' password 'admin', adjust categories and user levels * * * Bugs and flaws * ============== * * - Trackbacks are ignored (I can't test this, is there anybody who can send me * a database-dump containing trackbacks ? :-) * - All user are at level 1, you have to adjust this using the admin-account later * - All comments are anonymous, not assigned to registered users * - Categories with special characters (like !,?,&) are not allowed, rename them * before the export, else the url-names of these categories will be broken. * */

51 Antworten auf „Sunlog 2.2 export script for WordPress“

  1. funktioniert leider nicht. ich blicke auch die funktionsweise nicht ganz.

    wäre interessant zu erfahren ob es bei irgendwem geklappt hat…

    ich bekomme jedenfalls ein textfile das mit den worten „Fatal error: Call to a member function on a non-object in ***/export_sunlog22.php on line 127

    fazit: 🙁
    dabei hatte ich gehofft endlich auf ein kompatibleres weblog-system umzusteigen… sunlog versteht ja weder track- noch pingbacks außer von anderen sunlogs…

    sum1

  2. Hi,

    ich wäre auch wahnsinnig interessiert an diesem Script! Funktioniert es mittlerweile? Ziemlich schmarotzende & freche Frage, ich weiß…

    Danke & Gruß

    Daniel

  3. Also bei mir funktioniert es, ich kann die Probleme von sum1 leider nicht nachvollziehen. Probiere es doch einfach mal aus 🙂

  4. okay… werd ich tatsächlich tun.

    ich hoffe mit diesem adodb komme ich zurecht, sagt mir nämlich noch nix….

  5. jetzt hat es doch geklappt nach dem letzten update, sogar mit den kategorien! aber die passworter bringt es ducrheinander, das war ein wneig nervig, kam nur ducrh einen trick wieder ins admin.

    stell doch die letzte version online. auf jeden fall gute arbeit.

  6. OK, jetzt hat es bei mir auch erstmal soweit geklappt, dass zumindest mal was aus der Datenbank exportiert wurde.
    Ein ändern von
    $sunlog->debug = false;
    in
    $sunlog->debug = true;
    hat die Erleuchtung gebracht:
    Er konnte die Datenbanktabelle
    kiezkicker_de-weblog_entries nicht finden – was eigentlich auch logisch ist, denn die heisst zumindest bei mir kiezkicker_de-weblog_article…
    Nachdem ich also meine Datenbanktabelle, die die Sunlog2.2 – Artikel vorrätig hielt in weblog_entries geändert hatte, hat er mir zumindest mal was exportiert.
    Gleich werde ich mal den Import versuchen, wenn ich mich nicht mehr melde, hat es offenkundig geklappt (und ein weiterer ist migriert), andernfalls melde ich mich nochmal. :>

  7. Im erzeugten, neuen sql – File steht oben übrigens folgendes drinne, was da irgendwie nicht reinzugehören scheint:
    ———


    (mysql): SELECT DISTINCT cat FROM weblog_entries  



    (mysql): SELECT DISTINCT author FROM weblog_entries  


    —————————-
    Irgendwo weiter unten kommt nochmal was änliches. Wenn man das entfernt, klappt auch der Import recht problemlos.

  8. Hm, na gut. Da ist auch noch ein [code][/code] in spitzen Klammern, und das ein oder andere hr sowie br. 😉

  9. Hoppla, ich war wohl gestern etwas verpeilt 😉 Jetzt sollten die Files stimmen, das mit dem ‚read more‘ ist auch drinn.
    Die SQL-Statements in der Ausgabe sehen für mich aus wie die Debug-Ausgabe von ADODB.

  10. Ich kenne die Tabellenstruktur von Sunlog 2.4 nicht, es sollte aber kein Problem sein, mein Script darauf anzupassen.

  11. Also ich habe es nun nach langen probieren geschafft die neue sql zu erzeugen die auch soweit ganz gut aussieht.
    Ich bekomme sie leider nur nicht in meine wp Satenbank importiert.
    habe es über die uploadfunktion im phpMyAdmin versucht – problem dabei: Maximale Dateigröße: 8.192KB – meine neue sql hat allerdings 2,52 MB *augenroll*
    Die andere variante über den Befehl „mysql -u username -p wp_databasename < sunlog2wordpress_images.sql" zu importieren konnte ich leider nicht ausprobieren da ich NULL Ahnung von Datenbanken habe und *schäm* nichtmal weiss wo ich die neue sql datei überhaupt hinladen muss damit ich diesen befehl ausführen kan. Kurz gesagt: Ich brauch dringend HIILFEEE ^_^ Wäre super lieb wenn mir mal jemand dabei weiterhelfen könnte....

  12. …und da riss er dann ab mein Kommentar *g*
    Fortsetzung:

    …zu importieren konnte ich leider nicht ausprobieren da ich NULL Ahnung von Datenbanken habe und *schäm* nichtmal weiss wo ich die neue sql datei überhaupt hinladen muss damit ich diesen befehl ausführen kan.
    Kurz gesagt: Ich brauch dringend HIILFEEE ^_^ Wäre super lieb wenn mir mal jemand dabei weiterhelfen könnte….

  13. 2.5MB sind eigentlich kleiner als 8192k (8MB) 🙂 Dein Webhoster erlaubt möglicherweise keine Uploads größer 1MB, das ist eine Standardeinstellung bei vielen Servern. Du kannst die Datei mit einem Texteditor in mehrere (3-4) Dateien splitten, achte nur darauf, dass Du keine SQL-Kommandos zerschnippelst und dass Du die Dateien in der originalen Reihenfolge hochlädst.
    Wenn Du alle Dateien ohne Fehlermeldung hochladen konntest, hast Du es geschafft 🙂

  14. Ooops *wie-peinlich* ^^
    Ich werd das heute abend mal mit dem aufsplitten versuchen.
    Danke erstmal für den Hinweis.
    Wie meinst du das mit dem SQL-Kommandos zerschnippeln? An welchen Stellen kann ich denn da mit teilen immer anfangen???
    Ach und danke für die prompte Antwort 🙂

  15. Hallo melle

    Mal eine ganz unverschämte Frage – wenn ich dir die Tabellenstruktur von der Sunlog Version 0.2.4 schicke, kannst du die Tabellenstruktur in deinem Script dann darauf anpassen? Wäre superlieb von dir, ich bin da nämlich leider zu unfähig und würde mein Sunlog gerne auf WordPress umstellen – allerdings meine ganzen Beiträge dabei nicht verlieren :(.

    Liebe Grüße Tina

  16. für eine angepasste version auf Sunlog 0.2.4 würde ich mich auch sehr interessieren!

    danke
    stef

  17. Darf ich mich mal an Tinas unverschämte Frage anschließen?
    Vor Monaten hatte ich Dir schon mal gemailt, ist aber wohl irgendwo untergegangen 🙁
    Ich hab da noch ca 260 Blogeinträge aus meinem alten Gizmo-Blog, die ich weder manuell in WP kriege noch in dein eigentlich so schön einfach wirkendes Script.
    Wenn ich Dir den sql-dump schicken würde, könntest du den in eine WP-Tabelle überführen?
    Wenigstens ewige Dankbarkeit wäre dir sicher. Oder wenn du irgendwo eine Wunschliste ausliegen hast… 🙂

  18. Hm, Gizmo nach WordPress hatte ich schon mal in der Firma gemacht, das sollte kein Problem sein. Ich würde einfach eine hohe Artikel-ID vergeben, damit es dort keine Dupes gibt. Die URLs der Bilder müssen noch angepasst werden aber sonst sollte es klappen, weil das Artikel-Datum für eine vernünftige Sortierung innnerhalb von WordPress sorgt. Schick mit den Dump einfach mal. Benutzt du jetzt WordPress 1.2 oder 1.5? Sollte keinen Unterschied machen, aber sicherheitshalber würde ich das schon wissen wollen. Natürlich habe ich einen Wunschzettel 😉

  19. Hallo und erstmal danke für das Script, das mir meine Sunlog 2.3-Einträge zuverlässig in die WordPress-Datenbank importiert hat. Einziges Problem: Die Kommentare sind nicht mitgekommen. In der erzeugten sql-Datei stehen unten nur die comments der ersten 16 Einträge, dann reißt die Datei ab. Aber auch die sind nicht mit importiert worden. *rätsel* Spontan irgendeine Idee? Danke!

  20. Oh, das ist ja merkwürdig 🙁 Ist der Fehler reproduzierbar? Stehen Fehlermeldungen im Script oder werden Warnungen ausgegeben, wenn das Script läuft?

  21. Nein, es gibt weder Fehlermeldungen noch Warnungen. An der Größe der Datei kann es auch nicht liegen. Hm. Werde wohl auf den Import meiner Kommentare vorerst verzichten müssen… Schade. Dennoch danke!

  22. Erfolgsmeldung: Ich hab die Kommentare dann doch noch exportiert bekommen. Hab das Script so umgeändert, dass es nur die comments abgreift und importiert – et voilà! (Vielleicht doch die Dateigröße…?)

  23. also kann ich nicht von alten sunlog 2.2. files auf wordpress 2.0 „upgraden“ ? muss man erst auf 1.5.2 und dann auf WP 2 ?

  24. das ganze scheint ja zu funktionieren. blos gibt es ein riesen problem mit Sonderzeichen – z.B. Hochkommas. weis jemand wie man die mit regulären ausdrücken vernünftig ersetzt, ohne die benötigten Hochkommas zu eleminieren? Probleme gibt es auch wo in postings plug-ins für flash oder media-player eingebaut waren etc.

    bis ich die alle per hand behoben habe, kann ich auch jeden Artikel neu schreiben :-)))

    hat jemand einen TIP ?

    thanks

  25. @freeman: ja, Du solltest die Daten erst in WordPress 1.5 migrieren und dieses Blog dann auf 2.0 Upgraden.
    Das Problem mit den Sonderzeichen kannst Du umgehen, in dem Du aus dieser Zeile:

    $insert .= " post_content ='".$row['entry']."\n\n".$row['more']."', ";

    diese machst:

    $insert .= " post_content ='".addslashes($row['entry'])."\n\n".addslashes($row['more'])."', ";
  26. also eigentlich hat es soweit funktioniert. ich hab ein problem mit dem UTF-8 bzw. ISO-8859-1 output. egal was ich in den configs eintrage, es haut nicht hin.

    das größte problem ist, das die kommentare zwar übernommen wurden aber jeder artikel mit „no comments“ angezeigt wird.

    also euer tipp ist definitiv 1.5 und dann auf 2.0 ? bekommt man 1.5 noch so einfach?

  27. Das kommt darauf an, was Du in den import-Optionen der Datenbank einstellst. Bei phpMyAdmin kann man das Charset einstellen, in dem das SQL-Script eingespielt werden soll. In WordPress musst Du dann das gleiche Charset einstellen.

    Wenn Du z.B. bei dem Script noch diese Zeilen am Anfang einfügst, sollte mit der Einstellung ISO-8859-1 in WordPress die Ausgabe vernünftig aussehen:

    SET character_set_results = latin1;
    SET NAMES latin1;
    SET CHARACTER SET  latin1;

    WordPress 1.5 scheint nicht mehr direkt zum Download verlinkt zu sein, Du kannst Dir aber den 1.5er Zweig aus dem Repository auschecken.

    Du kannst alternativ auch gerne versuchen, den Konverter auf WordPress 2.0 anzupassen, viele Änderungen sind es bestimmt nicht. Ich habe das ganze leider noch nicht mit WordPress 2.0 testen können, möglicherweise läuft das auch ganz ohne Änderungen. Probier es am Besten aus und sag mir dann Bescheid 🙂

  28. Mal ne blöde Frage, die hier nicht so ganz her passt: Gibt es eine Möglichkeit, Daten von einem Blogg.de-Blog nach WordPress zu importieren?

  29. Kommt drauf an ™. Wie liegen die Daten denn vor? Kannst Du die von blogg.de irgendwie exportieren? Ich weiss, dass man twoday-Blogs exportieren kann. Dann bräuchte man nur noch mit wget die Bilder abgreifen und das ganze in SQL-Insert Statements verwandeln. Soweit die Theorie 🙂

  30. Man kommt über die Blogger-API an die Posts ran, mit ein bisschen Handarbeit hat man sicherlich schnell ein Script geschrieben, das die Artikel downloaden kann (filed under ‚things i’ll do in my next life‘)

  31. hey melle,

    ich arbeite dran… komisch ist, das ich in der DB alles mit korrekten Sonderzeichen drin hab, im Output auf der website zeigt der browser, trotz ettlicher versuche den ISO output zu ändern, komische zeichen an (siehe http://www.thefaces.de/faces06/).

    wie funktioniert dsa mit version 1.5 auschecken?

    danke für die hilfe

  32. Hm, das ist in der Tat etwas knifflig und hat mich auch schon zur Verzweiflung gebracht. Im Moment gibtst Dein WordPress latin1 aus, die Daten scheinen aber in UTF-8 vorzuliegen. Kannst Du wordpress auf UTF-8 umstellen?

    wie funktioniert dsa mit version 1.5 auschecken?
    probiere mal besser erstmal, ob Du der Import in WordPress 2.x
    klappt.

  33. naja, es gibt halt die möglichkeit „encoding for pages and feeds:
    The character encoding you write your blog in (UTF-8 is recommended)“ statts ISO-8859-1 UTF-8 einzutragen. das ergebnis beim output ist das selbe. obwohl, wie erwähnt, in der DB die sonderzeichen drin stehen.

    was sich aber noch als ein viel schwerwiegenderes problem entpuppt ist folgendes:
    schau dir mal: http://www.thefaces.de/faces06/ an – der Artikel Der offizielle Image-Spot der Stadt Kaiserslautern. er erscheint mit “ No Comments »“

    klickt man darauf (http://www.thefaces.de/faces06/2006/02/21/entry01904/#respond), zeigt er aber die abgegebenen Kommentare alle an.
    wie könnte man das fixen?

    bei neuen einträgen über WP ist das sonderzeichen problem gelöst… nach der UTF-8 Umstellung…

  34. ich hab’s hin bekommen… beide probleme. ich weis, mit etwas mehr zeit hätte ich den code auch schöner formen können… ich wollte es aber schnell und pragmatisch.

    /********************
    * migrate articles *
    ********************/

    – hab ich am Ende wie folgt erweitert –

    $insert .= “ post_title ='“.$row[‚title‘].“‚, „;

    $insert .= “ post_name = ‚entry“.$row[‚id‘].“‚, „;
    $comsql = „SELECT count(posting) as AnzC FROM „.SUNLOG_PREFIX.“comments WHERE id='“.$row[‚id‘].“‚“ ;
    $comquery = $csunlog->Execute($comsql);
    while ($comrow = $comquery->FetchRow())
    {
    $CommentAnz = $comrow[‚AnzC‘];
    }

    $insert .= “ comment_count = ‚“.$CommentAnz.“‚;\n“;

    damit ist das Comment Anzahl Problem gelöst.
    das Umlaute Problem hab ich wie folgt gelöst:

    function UmlauteErsetzen ($description)
    {
    $description = str_replace (‚%‘, ‚%‘, $description);
    $description = str_replace (‚ü‘, ‚ü‘, $description);
    $description = str_replace (‚ä‘, ‚ä‘, $description);
    $description = str_replace (‚ö‘, ‚ö‘, $description);
    $description = str_replace (‚Ü‘, ‚Ü‘, $description);
    $description = str_replace (‚Ä‘, ‚Ä‘, $description);
    $description = str_replace (‚Ö‘, ‚Ö‘, $description);
    $description = str_replace (‚ß‘, ‚ß‘, $description);
    return $description;
    }

    das muss innerhalb „migrate articles“ für $row[‚entry‘], $row[‚more‘]und $row[‚title‘] ausgeführt werden. ebenso unter „migrate comments“ für $row[‚entry‘]

    have fun….

  35. Schade, der Download von Version 0.2 funktioniert nicht bzw. das Archiv ist nicht ganz in Ordnung. Ich kann es nicht entpacken (und ja, ich habe es an mehreren Rechnern versucht). Ich werde es jetzt mit Version 0.1 versuchen.

  36. Moin!

    Hat zufällig inzwischen jemand eine Möglichkeit gefunden, die blogg.de-Beiträge per API in eine eigene WordPress-Installation zu integrieren?

  37. Lebt dieses Projekt noch ??? wär echt gut.. da es sunlog anscheinend nicht mehr gibt!!! Kann die File übrigends auch nicht herunterlade.

Kommentare sind geschlossen.