Pfeff mit neuem Pepp? Neustart im neuen Gewand!

Rückblickend hab ich in den letzten Jahren ja immer weniger gebloggt, letztes Jahr waren es sogar nur 2 oder 3 Blogpost …

Ich will das Bloggen aber nicht aufgeben und wieder beleben.

Quasi mein Wappentier
Quasi mein Wappentier

Erster Schritt: Redesign

Das alte Layout meines Blogs fand ich persönlich immer recht schlank und funktional, aber irgendwann hab ich mich daran satt gesehen gehabt und es kam mir altbacken (und zu rosa, obwohl die Grundfarbe eigentlich Dunkelrot ist) vor. Ein paar Mal hatte ich schon den Bleistift in der Hand und hab ein neues Design skizziert, aber so wirklich kam ich nicht auf einen grünen Zweig.

Gleichzeitig schrie mein Joomla schon seit geraumer Zeit nach einem Upgrade. Bei jedem Login lächelte mich der nette Hinweis an, dass der Support für meine Version schon 2014 abgelaufen sei. Angesichts dessen, dass mein Blog schon mehrfach Hacks ausgesetzt war, bei dem Sicherheitslücken ausgenutzt wurden, war also auch hier Handlungsbedarf angezeigt. Ein Schaden ist dabei in der Regel nicht passiert, da es „nur“ Defacements waren, aber der Ärger und die Arbeit waren dennoch da.
Von einem Upgrade war ich allerdings von vorn herein abgeschreckt, da damit bisher immer eine umfangreiche Anpassung des Templates sowie die Suche nach aktualisierten oder neuen Plugins einherging. Der Aufwand mit Joomla einen Blog nachzubauen (ohne Komponenten wie K2) ist doch recht umfangreich und bisweilen nervenaufreibend. Darauf hatte ich keine Lust.

Also das ganze Thema vorerst auf Halde gelegt.

Zweiter Schritt: Kein Redesign, Plattformwechsel

Vor Kurzem (im Februar) stand die Gestaltung meiner neuen Webseite für mein Fotografie-Projekt an. In Gedanken hab ich mich auch bei diesem Projekt schon gegen das Designen und Programmieren eines Templates gesträubt, insbesondere, da mittlerweile HTML5 der Stand der Technik ist und ich wahrlich nicht am Ball geblieben bin. Ich hab kurzerhand beschlossen, mich nach einem fertigen Template umzuschauen und nachdem ich mittlerweile mit diversen Content Management Systemen gearbeitet habe, war mir auch recht schnell klar, dass ich WordPress für dieses Fotografie-Projekt nutzen will. Das lag unter anderem daran, dass die geplante Webseite sehr einfach strukturiert und ohne viel Firlefanz sein sollte.

Gesagt, getan. Ich habe recht schnell ein Theme gefunden, in dem mir mein Foto-Projekt auf Anhieb gefallen hat. Es sollte ein One-Page-Layout sein, dass auf allen Geräten (PC, Tablet, Mac) gut aussieht – ein sogenanntes responsives Design. Mit Hilfe eines Video-Tutorials hab ich auch recht schnell die Systematik dieses Themes verstanden und innerhalb kürzester Zeit stand die Webseite.
Allein die Grundinstallation des Themes hat mich schon begeistert, da sie mit einem Klick aus dem Administrationsbereich von WordPress heraus machbar ist, genauso wie die Installation von Plugins. Es war deutlich einfacher als in Joomla 2.5 (zu 3.x kann ich nichts sagen).
Die Webseite hat übrigens auch einen Blogbereich zum Thema Fotografie erhalten und hier fiel mir direkt auf, dass WordPress quasi ab Werk alle möglichen Blog-Tools als Widgets bereit hält, die ich bei Joomla mühsam zusammensuchen und anpassen musste. Logisch: WordPress ist ein Blog-System, während Joomla mehr ist und deutlich mehr Möglichkeiten gerade für größere, komplexere Seiten bietet. Meine eigenen Webseiten benötigen diese Komplexität aber gar nicht. Bei der Webseite eines Vereins, die ich ehrenamtlich betreut habe, sieht das schon wieder anders aus – aber anderes Thema. Mit anderen Worten:

Joomla war mit Kanonen auf Spatzen geschossen.

WordPress passt viel besser zu meinem Blog.

Aber ein komplett neuer Blog? Die alten Blogpost würde ich gern behalten, nicht aber den alten Blog parallel laufen lassen – das wäre auf Dauer bzw. ist bereits jetzt ein Sicherheitsrisiko. Tante Google wusste natürlich ein Lösung und tatsächlich: Es gibt ein Plugin, dass Artikel, Kategorien, Medien, … aus der Joomla-Installation nach WordPress migriert und sogar interne Links korrigiert: FG Joomla to WordPress. Theoretisch kann das Plugin bzw. ein damit verwandtes Plugin sogar die Kommentare des von mir genutzten Kommentar-Moduls (JComments) aus Joomla migrieren. Diese Funktion kostet aber nicht wenig Geld (zumindest für den Maßstab „privater Blog“), so dass ich mich gegen die automatisierte Migration der Kommentare entschieden habe. Dazu weiter unten mehr.

Sämtliche Artikel waren also recht schnell migriert und der Blog wäre grundsätzlich startbereit gewesen.

Dritter Schritt: Neues Design

Redesign möchte ich diesen Schritt eigentlich gar nicht mehr nennen, da das neue Design schon etwas grundlegend Neues ist. Die Funktionalitäten dieses neuen Blogs sind die Gleichen, die Aufteilung der Seite weicht aber in meinen Augen deutlich vom klassischen Blog-Design, wie ich es bisher hatte, ab. Das ist auch Absicht.

Ich wollte keinen Standard-Aufbau, wie ich ihn bisher hatte. Ich wollte ein klares, übersichtliches Design, dass sich zunächst auf das Wesentliche konzentriert: Den Inhalt. Das von mir gewählte Theme Seasonal hat mich sofort angesprochen. Auf der einen Seite ein Foto mit Menü als festes Element, daneben die Kurztexte der einzelnen Blogposts. Das Wesentliche ist auf einen Blick zu sehen. Die vielen kleinen Helferlein (Kategorien, Blog-Kalender, letzte Kommentare, …) stören den ersten Eindruck nicht, sondern sind dezent an des Seitenende gewandert und nehmen auf den ersten Blick keinen Platz weg. Das Ganze wird abgerundet durch eine dezente, stimmige Farbpalette und Typographie. Sogar das Probebild, der Kolkrabe auf Fuerteventura, gefällt mir in dem Design so gut, dass ich ihn voerst dort belassen werde … Ein Bezug zu meinem Namen ist ja gegeben 😉

Dieses Theme ist übrigens auch responsiv, aber leider kommt der Kolkrabe auf Tablet und Smartphone nicht wirklich zur Geltung.

Vierter Schritt: Korrekturen

Das ist wohl der zeitintensivste Schritt, der durchaus Potenzial hat, den Spaß an der Freude zu verderben und mich dann doch fast ein halbes Jahr Arbeit gekostet hat (peu à peu auf 6 Monate verteilt – ich hab ja nebenbei auch noch andere Dinge zu tun). Aber gut: Die eierlegende Wollmichsau darf ich nicht erwarten. Das Problem, vor dem ich stand, war, dass Anpassen der Bilder in den einzelnen Blogposts. In Joomla hab ich die Bilder anfangs manuell skaliert, zwischendurch mit einem Plugin automatisch angepasst. Grundsätzlich wurden alle Bilder, die nicht in einer Galerie waren, zu WordPress migriert. Das erste Bild eines Blogpost wurde als Beitragsbild definiert, was ich für die Anschaulichkeit mittlerweile unerlässlich finde. Das hatte nun allerdings zur Folge, dass dieses Bild doppelt im Beitrag ist: Einmal als Beitragsbild und einmal als positioniertes Bild im Beitrag. Das sah mehr als bescheiden aus. Ich habe hierfür ein Plugin installiert, das die Anzeige des Beitragsbildes im Blogpost selbst unterdrückt. Das Bild ist also nur im Kurztext auf der Hauptseite zu sehen und an der von mir definierten Position im Text mit entsprechender Skalierung.

Diese Option „Hide Featured Image“ muss ich allerdings manuell in jedem Blogpost (es sind etwa 250) aktivieren, wenn ich es nicht direkt in der Datenbank machen will. Bei Letzterem bin ich bei so komplexen Datenbanken aber mittlerweile vorsichtig, da ich Seiteneffekte nicht abschätzen kann. Das ist aber auch nur halb so schlimm, denn aufgrund dessen, dass ich in jedem Blogpost die Skalierung der Bilder überprüfen und ggf. anpassen muss (soll ja schick aussehen), muss ich eh in jeden Post rein.

Darüber hinaus gibt es noch ein bisschen Feinschliff zu machen, damit das Look’n’Feel stimmt. Dazu gehöre zum Beispiel die Galerien, die ich hauptsächlich für meine Pinseleien im Einsatz hatte. Hier habe ich mich für das Huge-IT Portfolio entschieden, dass in seiner Non-Premium-Ausführung vollkommen ausreichend ist für meine Zwecke.

Fünfter Schritt: Relaunch

Zu guter Letzt blieb nun nur noch die Domain auf die WordPress-Installation umzubiegen und vorher die Site-URL in WordPress anzupassen (Arbeitsumgebung war natürlich nicht die Live-Domain), wäre da nicht die Sache mit den Permalinks, die mich gedanklich und arbeitstechnisch dann doch länger beschäftigt hat:

Ich wollte zwischenzeitlich die Premium-Version des oben genannten Migrations-Plugins kaufen (ca. 35 Euro). In der Premium-Version werden automatisch u.a. die alten Joomla-Links umgebogen bzw. die WordPress-Permalinks so eingerichtet, dass zu mir führende Links von anderen Seiten auch zukünftig den richtigen Weg finden. Nach einigem Hin und Her sowie Probieren habe ich aber beschlossen auch dies manuell zu machen.
Dazu habe ich das Permalink-Schema von WordPress dem von Joomla angepasst und die Aliase der Kategorien entsprechend korrigiert, was der einfache Teil war.

www.beispiel.de/%category%/%title%

Der aufwändigere Teil war, die Aliase der Artikel anzupassen. Joomla hat die Aliase aus dem Titel des Artikel generiert sowie es WordPress grundsätzlich auch tut. Zusätzlich hat Joomla aber vor jeden Alias die Artikel-ID gemäß Datenbank gesetzt. Die IDs sind bei WordPress aber andere, insbesondere da WordPress auch alle Revisionen in der Artikel-Tabelle der Datenbank speichert und mit einer einmaligen ID versieht – in dieser Datenbank sind bereits über 1000 IDs vergeben, da ich ständig an den Artikeln korrigiert habe, was zu eigenen Revisionen geführt hat.
Ich habe daher sämtliche Aliase um die alte Joomla-ID ergänzt, so dass die Links nun stimmen. Bei über 250 Artikeln war das ein Aufwand von ca. 2 Stunden – noch überschaubar. Den Aufwand hab ich in erster Linie deshalb betrieben, da einige meiner Artikel insbesondere aus der Kategorie „Reiterstübchen“ doch recht große Verbreitung gefunden haben und regelmäßig in Blogs, Foren und sozialen Medien referenziert werden. Sollte ich trotz aller Sorgfalt einen Link übersehen oder mich vertippt haben, gebt mir einfach Bescheid.

pfeff.eroni.de wird daher auch pfeff.eroni.de bleiben auch wenn der Blog nun deutlich mehr Pepp hat 😉 Vielleicht richte ich eine alternative Sub-Domain pepp.eroni.de ein.

PS: Der finale Feinschliff

Absolute Links auf Bilder korrigieren

Das Umbiegen auf diese Domain hatte leider noch einen kleinen, unschönen Nebeneffekt, für den ich aber schnell eine Lösung gefunden habe. Die Bilder im Blog werden in WordPress mit absoluten Links verdrahtet. Die Änderung der Basis-URL hatte also zur Folge, dass die Verweise auf die Bilder sowohl in den Artikeln als auch im Theme ins Leere liefen. Mit relativen Links würde es dieses Problem nicht geben.

Für die Anpassung der Links in den Artikeln hab ich folgenden SQL-Befehl auf Geekpub gefunden:

UPDATE wp_posts SET post_content = replace(post_content, ‚alte Domain‘, ’neue Domain‘);

Da hätte ich natürlich auch selbst drauf kommen können. Andererseits lebt das Internet ja auch irgendwie vom Teilen des Wissens. Danke hierfür.
Für das zweite Bild-Problem, nämlich dem Hintergrundbild im Theme bin ich in die Datenbank gegangen. In der Tabelle wp_options gibt es für das Seasonal-Theme die Zeile theme_mods_seasonal, in der recht kryptisch die Einstellungen des Themes gespeichert sind – so auch der Link zum Hintergrundbild. Die entsprechende Option heißt nun:

s:61:“https://pfeff.eroni.de/wp-content/uploads/2016/02/kolkrabe.jpg“;

wobei s:61 die Länge des darauf folgenden Wertes angibt – in diesem Fall die Zeichenanzahl des Links. Dieser Kontrollwert muss angepasst werden, da das Theme andernfalls die Default-Einstellungen verwendet. Das Ganze hätte ich natürlich auch im Dashboard anpassen können, allerdings erscheint bei mir derzeit nur einen weiße Seite beim Versuch, den entsprechenden Menüpunkt aufzurufen, was wiederum auf einen Skriptfehler bzw. nicht nachgeladene Skripte hinweist.

Kommentare übernehmen

Auch die Kommentare der Joomla-Instanz habe ich nun vollständig übernommen – manuell – 202 Kommentare. Geiz ist geil.

Zu diesem Zweck habe ich zunächst die entsprechende SQL-Tabelle der Joomla-Instanz nach Excel exportiert. In der Tabelle sind einige Spalten, die man ausblenden kann. Für mich wichtig waren die Spalten für Kommentar-ID, übergeordnete Kommentar-ID (bei Antwort-Kommentaren), ID des zugehörigen Artikels, der Autor, Email, Webseite, der Kommentar selbst und das Datum. Die IP-Adresse hab ich nicht überführt, denn wir sind hier ja nicht bei der Stasi.

Als Admin angemeldet, habe ich nun Artikel für Artikel jeden Kommentar unter Beachtung der Schachtelung verfasst und abgeschickt. Da ich vorab ja jeden Permalink mit der Joomla-ID versehen hab, hab ich ich michr echt gut mit der Artikel-ID meiner Excel-Tabelle durchhangeln können, den der Titel des Artikels steht sinnvollerweise nicht in der Tabelle (hat was mit Veränderungsanomalien und Normalformen von Datenbanken zu tun 😉 ). Anschließend ging es daran im Backend jeden einzelnen Kommentar anzupacken und den Autoren sowie das ursprüngliche Datum anzupassen. Zu guter Letzt habe ich in der Datenbank (Tabelle wp_comments) für alle Kommentare, die nicht von mir waren, die User-ID auf 0 gesetzt. Ohne diese Korrektur stünde zwar bei jedem Kommentar der manuell korrigierte Name, aber intern wäre er dennoch mit meinem Account verknüpft, was auch dazu führt, dass bei jedem Kommentar mein Gravatar angezeigt wurde. Die 0 steht quasi für den unbekannten/unregestrierten Benutzer und der Gravatar wird – sofern  vorhanden – entsprechend der hinterlegten Email-Adresse geladen.

UPDATE `wp_comments` SET `user_id` = ‚0‘ WHERE `wp_comments`.`comment_author` != ‚mein verwendeter Nickname‘;

Das PHP-Skript, dass ich hier gefunden hab, habe ich übrigens nicht ausprobiert, da es schon etwas älter ist und WP seit dem schon einige Updates durchlebt hat.

Zugegeben: Dieser Teil des Feinschliffs war schon recht zeitintensiv (ca. 5-6 Stunden Arbeit) und friemelig, aber der Aufwand war es mir auch wert. Immerhin sind es viele schöne, nette, liebe, hilfreiche Worte und bei manch einem Kommentar musste ich schmunzeln (zum Beispiel Freitagstexter 1 & 2).

Blog gehackt

Und zack … da hatte es mein Blog erwischt.

Zunächst war ich davon ausgegangen, dass lediglich die PHP-Version auf dem Server angehoben wurde und mein altes Joomla 1.5.26 zu alt geworden ist … ist ja immerhin schon seit 2 Jahren schon abgelöst und wird nicht mehr unterstützt und seit mindestens einem Jahr wollte ich das Content Management System schon auf die aktuellste Version anheben, das Template überarbeiten …

Nachdem ich mir dieses Wochenende nun endlich Zeit nehmen konnte, den Fehlermeldungen nachzugehen, war recht schnell klar, dass das nichts mit der PHP-Version zu tun hat sondern ganz einfach ein Hack war. Mein Admin-Passwort war in der Datenbank überschrieben und dann wurde irgend etwas im Joomla-Core kaputt gemacht.

Also Joomla neu aufgesetzt, Datenbank importiert und dann hieß es „Upgrade“. Bisher hab ich da immer einen Bogen drumherum gemacht, da ich einige liebgewonnene Plugins und Module für meinen Blog nicht für Joomla 2.5 wiedergefunden habe. Nun war ich gezwungen umzustrukturieren und nach jeder Menge Fissel-Arbeit, konnte ich alle Feature mit anderen Komponenten, Modulen und Plugins nachbilden. Dann noch ein bisschen Facelift am Template und mein Blog erstrahlt in neuem Glanz.

Die einzige Komponente die nun noch fehlt ist die Kommentarfunktion, aber das kommt noch. Da die Kommentarfunktion die einzige Komponente ist, bei der Nutzerdaten gespeichert werden, kann ich leider nicht garantieren, dass Daten gestohlen wurden. Ich werde daher diese Woche, die alten Kommentare auswerten und potentiell betroffene Nutzer über den Hack informieren.