Umstellung von Greymatter auf Sunlog: Die Anleitung

Wie versprochen die Anleitung, wie man seine Greymatter-Einträge und Kommentare ins Sunlog rüberbringt. Die Idee kam mir, wie ich mir die Movable-Type-Anleitung zum Datenimport durchgelesen habe und basiert darauf, erst alle Einträge und dann alle Kommentare als CSV-ähnliche Datei auf einer Seite zusammenzufassen. Die id der Kommentare, die Sunlog normalerweise als Zufallszahl generiert (ähnlich einer Session-ID), hab ich durch Zusammenschluß von Datum und Zeit im ersten Feld simuliert – funktioniert auch, sofern keine zwei Personen am selben Tag zur selben Zeit gepostet haben.
Viel Spaß dabei…


Voraussetzungen:
– phpMyAdmin am Server
– ein GUTER Texteditor, der Zeilenumbrüche (
)suchen und ersetzen kann
– ein frisch installiertes, leeres Sunlog (da die Nummern der Einträge nicht doppelt vorhanden sein dürfen, sollte die Datenbank leer sein).
– ein bissi Zeit (je nach Blog-Größe, bei mir hats für 473 Einträge und 170 Comments einen Nachmittag gebraucht – ich hatte aber auch keine wirkliche Anleitung. Sollte also schneller machbar sein).

Aaaalso:

1. BACKUPS machen!!! Jeder, der das nicht tut und sich dann über Datenverlust beschwert, ist selber schuld. Alle Greymatter-Files und auch das Archivverzeichnis per FTP runterladen und zwischenspeichern.

2. In der Greymatter-Verwaltung unter „Edit Templates – Main Index Related Templates“ folgende Werte eintragen:

Main Index Template:

{{logbody}}

Standard Entries:

{{entrynumber}}|{{entrymainbody}}|{{entrymorebody}}|{{entrysubject}}|{{author}}|
{{weekday}}|{{dayday}}.{{monthmonth}}.{{yearyear}}|{{hourhour}}:{{minuteminute}}
|Greymatter@@@@@@@@@@

Extended Entries

dasselbe Template verwenden (unten die Box anhaken oder ebenfalls einfügen)

Alle anderen Templates auf dieser Seite löschen, Änderungen speichern, aber NOCH NICHT Files neu aufbauen lassen.

3. In der Greymatter-Verwaltung unter „Configuration“ folgende Änderungen durchführen: Anzahl der Tage am Main Index auf mehr Tage stellen, als Dein Weblog insgesamt umfasst.

4. Main Index Name auf einen anderen Wert ändern, beispielsweise „export.html“ oder ähnliches.

5. Jetzt kann man den Main Index neu aufbauen lassen. („Rebuild Files – Rebuild Main Index“)

6. Nun hat man im Weblogverzeichnis eine Datei mit dem vorher definierten Namen stehen (in unserem Fall „export.html“). Diese holen wir uns nun per FTP auf den lokalen Rechner.

7. Jetzt beginnt ein bißl Herumfudelei: „export.html“ in einem guten Texteditor öffnen und erst einmal alle Zeilenumbrüche suchen und durch nix ersetzen. Man muß also nach dem Sonderzeichen
suchen können. ACHTUNG: Ich hab das Ganze mit HTML Kit gemacht, und dem war meine „export.html“ einfach zu groß und er stürzte kommentarlos ab. Dann muß man das Exportfile in mehrere Teile splitten – lies ganz unten weiter. Wenns funktioniert – lies weiter bei Punkt 8.

8. Dann lässt man den Texteditor nach @@@@@@@@@@ suchen und durch
ersetzen. Dann die Datei mit der Endung .csv speichern.

9. Voila – nun haben wir ein CSV-File, in dem die Einzelwerte durch | getrennt sind. Diese CSV-Datei können wir nun mit phpMyAdmin in die Entries-Tabelle von Sunlog (heisst normalerweise slog_entries) einfügen:

10. In phpMyAdmin die Tabelle in der Liste links anklicken, rechts runterscrollen und „Textdatei in Tabelle einfügen“ auswählen.

11. Exportdatei heraussuchen und mit folgenden Einstellungen abschicken:

– „Felder getrennt mit“ = |
– „Felder eingeschlossen von“ = leer lassen
– „Felder escaped von“ =
– „Zeilen getrennt mit“ =

12. Nun sind erstmal die Einträge in der Datenbank. Weiter gehts mit den Kommentaren:

13. In der Greymatter-Verwaltung unter „Edit Templates – Main Index Related Templates“ folgende Werte eintragen:

Main Index Template:

{{logbody}}

Standard Entries:

{{entrycomments}}

Extended Entries

dasselbe Template verwenden (unten die Box anhaken oder ebenfalls einfügen)

Alle anderen Templates auf dieser Seite löschen, Änderungen speichern, aber NOCH NICHT Files neu aufbauen lassen.

14. Unter „Comment Related Templates“ folgendes eintragen:

Comment Appearance Template:

{{yearyear}}{{monthmonth}}{{dayday}}{{hourhour}}{{minuteminute}}|
{{entrynumberpadded}}|{{commentbody}}|{{commentauthor}}|
{{commentauthoremailabsolute}}|{{commentauthorhomepageabsolute}}|{{dayday}}.
{{monthmonth}}.{{yearyear}}|{{hour}}:{{minuteminute}}:00|{{yearyear}}{{monthmonth}}
{{dayday}}{{hourhour}}{{minuteminute}}@@@@@@@@@@

15. Wiederum: Main Index neu aufbauen lassen. („Rebuild Files – Rebuild Main Index“) und Datei per FTP vom Server holen.

16. Dasselbe Spiel: alle Zeilenumbrüche suchen und durch nix ersetzen, dann alle @@@@@@@@@@ suchen und durch
ersetzen und die Datei mit der Endung .csv speichern. Gegebenenfalls muß man ebenfalls vorher das File aufsplitten – lies ganz unten weiter.

17. Nun kommt noch ein wichtiger Punkt: Da Sunlog die Eintrags-IDs nur fünfstellig verwaltet, muß man die überflüssigen drei Stellen der Greymatter-Notation rauswerfen. Das geht, indem man nach |000 sucht und durch | ersetzen lässt.

18. Nun haben wir eine CSV-Datei mit den Comments, die man wie oben beschrieben ebenfalls in die Datenbank importiert, allerdings in die Comment-Tabelle (normalerweise slog_comments)

19. Nun muß man noch den Ordner „archives“ mitsamt den Bildern, die man bisher verwendet hat, ins Sunlog-Verzeichnis kopieren. Alle Eintragsdateien von Greymatter (also alle „000…htm“ und „000…cgi“ sowie die „archive…htm“) kann man bereits rauslöschen.

20. Fertig – viel Spaß mit Sunlog.

Datei zu groß – Editor stürzt beim Suchen/Ersetzen ab:

Man kann die Datei mit Ausschneiden/in neue Datei Einfügen auch splitten, damit sie in handlicheren Portionen bearbeitet werden kann. Nur bitte nicht irgendwo teilen – sondern immer nur nach den @@@@@@@@@@, die immer das Ende eines Beitrages markieren. Das bedeutet: jede der einzelnen Dateien beginnt nach der Teilung IMMER mit einer Zahl (der Nummer des Eintrages) und endet immer mit @@@@@@@@@@ – dem Ende eines Eintrages. dann sollte der Rest kein Problem mehr sein.
Man kann klarerweise das Suchen/Ersetzen auch mit einem Perl-Script o.ä. automatisieren – ich hatte aber keine Lust, sowas auch noch zu basteln. Wenn sich wer dazu bereiterklärt, soll er mir das Ding bitte mailen und ich stells hier zum Download bereit.

Diesen Beitrag teilen (bereits 0 Mal geteilt)

Ernst Michalek
Folgen:

4 Gedanken zu „Umstellung von Greymatter auf Sunlog: Die Anleitung“

  1. Hochinteressant. Über solche Efforts staune ich immer wieder. Wenn ich mir das so ansehe, wird der Greymatter-Importer für Sunlog ein heiden Spass: Ein grossartiges Gewusel von Arrays, RegExs und Formatierungsanweisungen für die Strings. Zu diesem Zeitpunkt wünsche ich mir, ich könnte einfach XML-Dateien parsen, das ist so schön trivial…

  2. was genau ist denn das sonderzeichen n? oder einfacher, was muss ich in das feld „replace with“ meines editors eingeben, um das sonderzeichen n zu erhalten?

  3. Das Sonderzeichen \n (Backslash-n) ist der (nomalerweise unsichtbare) Zeilenumbruch in Textdateien.
    Bei HMTL-Kit von Chami (http://www.chami.com/html-kit/, Freeware) kann man beispielsweise mit Find/Replace ‚Regular Expressions‘ suchen, dann findet das Ding auch \n.

Schreibe einen Kommentar