Ein Müsli und ein Update

Vor mir steht eine schöne Schüssel Blogsprit, anscheinend keine Bananenchips, dafür um so mehr Kokoschips, aber so ist das halt bei dem handgemischten MyMuesli. Jeder Löffel schmeckt anders, Langeweile schmeckt anders.
Und warum gönne ich mir ein Mitternachtsmüsli? Weil mal wieder WordPress Update Tag ist und ich gerade sechs Blogs geupdated habe. 2.2.3 nennt sich die aktuelle Version und sie ist nur ein Sicherheitsupdate. Zwei kritische Sicherheitslücken werden behoben und ein paar unwichtigere Bugs, also ist ein Update Pflicht.

Eigentlich wäre das ganz in Ordnung, wenn, ja wenn nicht für den 24.09 schon die nächste Version terminiert wäre. Dann soll die Version 2.3 erscheinen, die als großes Feature Tagging in den Kern des CMS integrieren soll und dafür einiges an Aufregung erzeugt, weil eine ganze Reihe an Addons den Versionssprung nicht mitmachen werden…
Dass der Traum einer guten Bewertung beim Designministerium dürfte dann ausgeträumt sein, wenn man die Tagcloud aktiviert hat…

Wie komme ich schnell an gute Artikel?

Diese Frage stellt sich wohl jeder Blogger manchmal, wenn der Besucherstrom etwas nachlässt und man ein neues Thema zünden will, einem aber nichts einfällt. Zum Glück gibts aber viele tolle Artikel auf Englisch, die in Deutschland, evtl wegen der Sprachbarriere, noch nicht bekannt sind. Man könnte also einfach einen solchen Artikel nehmen, ihn wörtlich oder sinngemäß übersetzen, keinen Link auf den Ursprungsartikel setzen und darauf hoffen, dass es niemandem auffällt. Versteht mich nicht falsch, das Übersetzen von Artikeln ist anstrengend und auch ein durchaus ehrenwertes Vorgehen, aber ein Link auf das original sollte schon drin sein.

Tja, Pech für Frank Bültge, dass mir der gestrige Artikel über custom.css und der heutige über random header images irgendwie bekannt vor kamen. Hat nicht Pearsonified schon darüber geschrieben? How to Protect CSS Mods for ANY WordPress Theme vom 2. Februar 2007 und Simple Random Header Images for Your Blog vom 11. Oktober 2006.

Gut, beides sind nicht unbedingt Themen, bei denen man das Rad neu erfinden müsste und auch personified ist wahrscheinlich nicht der Erfinder dieser beiden Ideen, aber irgendwie finde ich es schon auffällig, wenn an zwei aufeinanderfolgenden Tagen Artikel erscheinen, die ihren Ursprung von der gleichen Webseite haben könnten. Ich tippe ja mal darauf, dass wir morgen einen schönen Artikel über den Sinn und die Technik hinter Pullquotes lesen werden…

Schubladendenken

Schubladen sind was ganz feines, denn man hat meiste mehrere von ihnen, kann dort Dinge hinein stecken und sie anschließend schließen. So kann man Dinge schön sauber sortieren und mit etwas Glück erinnert man sich beim nächsten mal auch noch, in welche Schublade man das Ding gesteckt hat. Manchmal ist das zuordnen nämlich nicht ganz einfach…

Auch hier im Blog gibt es viele Schubladen, nur nennen wir sie hier Kategorien. Und diese sortiere ich nun um. Ziel soll eine klarere Struktur sein, so dass ich die Artikel in eine Schublade stecken kann, von der ich annehme, dass ihr die Artikel dort suchen und finden werdet. Im gleichen Aufwasch versuche ich, alle verwendeten Bilder zu erwischen und sie darauf zu überprüfen, ob sie im neuen Theme auch an einer passenden Stelle stehen. Dass ich auch noch an den Tags rumbastle, wird euch nicht so sehr auffallen, außer ihr guckt auf den Artikelseiten nach einem “Ähnliche Artikel”…

Wundert euch also nicht, wenn hier bald Kategorien neu auftauchen, alte verschwinden und am Ende alles viel übersichtlicher ist, zumindest hoffe ich das.

Aktuelle Kommentare auf der rechte Seite

Bitte wundert euch nicht, wenn in der rechten Sidebar die Anzeigen unter “Aktuelle Kommentare” etwas seltsam aussehen.

Ich bin da grad am basteln, weil mir grad was blödes aufgefallen ist. Eigentlich möchte ich ja meine eigenen Kommentare dort ausblenden, leider werden aber auch die aller anderen angemeldeten Nutzer ausgeblendet…
Wie gesagt, work-in-progress hack-bastling

Schreibts und bekommt eine Erleuchtung. Ist ein wirklicher dirty-hack, denn:
Wird in den Optionen von “Get Recent Comments” die Option “Exclude comments from blog authors (your own comments)” aktiviert, zeigt das Plugin nur noch Kommentare des Nutzers mit der WordPress-NutzerID 0 an, ergo unangemeldeter Nutzer. Ich hab jetzt einfach die entsprechende SQL-Abfrage verändert, so dass statt
$sql_exclude_owner = "AND user_id = '0' ";
nun
$sql_exclude_owner = "AND user_id != '<em>[MarnemsID]</em>' ";
da steht. Damit wird statt
Kommentar von NutzerID 0 (also einem unangemeldeten Nutzer)
Kommentar von jedem außer Marnem
angezeigt.

Hübscher wäre es natürlich, wenn man ähnlich wie bei den auszuschließenden Kategorien die auszuschließenden Nutzer wählen könnte, aber für dieses Blog hier ists nicht nötig und das Plugin entsprechend zu erweitern wäre wohl ein Overkill.

[Nachtrag 3:00]

Ach Leute, inzwischen kennt ihr mich doch. Natürlich hat mir das keine Ruhe gelassen und hab es doch noch programmiert. Ich kann nun auf Knopfdruck die Kommentare aller angemeldeter Nutzer oder auch nur einzelner Nutzer ausblenden. Alles in allem ziemlich einfach, aber um diese Uhrzeit steigt die Tippfehlerrate enorm an. Und wenn man nicht weiß, dass man nach einer Änderung im Plugin ZUERST die Optionen neu abspeichern muss, bevor die Änderung im Blog sichtbar wird, muss man auch nicht 20 Minuten vergeblich Zeit tot schlagen, während man auf ein Wunder wartet…

Ich werde in den nächsten Tagen gucken, ob alles so funktioniert wie es soll und mich dann mit dem Autor des Plugins kurzschließen, ob er oder ich es veröffentlicht.

Es gibt Tage, da sollte man besser das Bett nicht verlassen

Gestern, oder soll ich sagen heute, ist so ein Tag, an dem das eigene Bett der einzige sichere Ort ist und einen überall sonst nur böses erwartet…

Es hat schon morgens angefangen, denn ich hab den Wecker statt ihn auf In-5-Minuten-Nochmal-Klingeln zu stellen ganz ausgeschalten. Demnach hab ich dann verpennt. Als ich dann aufgewacht bin wars dementsprechend hetzig in die Uni zu kommen.
Auf halben Weg ist mir eingefallen, dass ich die Übungsblätter zum lernen liegen gelassen hab. Auf dem Rückweg habe ich mir überlegt, ob ich mir nicht endlich einen Fahrradhelm besorgen sollte und dass ich doch endlich die Gangschaltung reparieren lassen sollte (Seil gerissen). Keine 2 Minuten später ist mir ein Geisterfahrer-Radfahrer ins Radl gefahren. Zwar sind wir beide nicht gestürzt und uns ist nichts passiert, dafür darf ich aber den Lenker aus- und wieder einbauen, denn er steht nun ziemlich schief im Rohr…

Den Abend habe ich ruhig angehen lassen, d.h. zur Vorbereitung des WordPress-Updates eine Liste der in den sechs Blogs verwendeten Plugins geschrieben, geguckt welche Plugins inzwischen in neuer Version zu Verfügung stehen, alle Blogs gebackupt und lecker Kaffee gekocht. Rund 2 Stunden sollte das ganze inklusive Tests auf dem Testblog dauern.
Um 12 gings los, auf Blogsprit hat alles geklappt, also das Upgraden von WordPress, alle Plugins und sogar die UTF-8 Konvertierung der Datenbank. Ich hab mich noch gefreut, dass alles so glatt läuft.
Jetzt ist es 4 Uhr und ich hab erst zwei Blogs geschafft…
Nachdem auf dem Testblog Blogsprit noch alles geklappt hat, habe ich auf Marnem.de natürlich alles genau so gemacht. Nun hat Marnem.de natürlich deutlich mehr Daten als Blogsprit und somit Probleme, die beim Testblog nicht auftraten. So hat das Plugin Simple Tagging auf Marnem.de Tags mit Umlauten, auf Blogsprit nicht. Marnem.de warf lustige Fehlermeldungen, aber zum Glück hab ich ja alles gebackupt, einfach den Datenbank-Dump importieren und fertig. Dachte ich.
Der gezippte Datenbankdump war zwar schnell auf dem Datenbankserver angekommen, das Importieren lief aber über das Prozeßzeitlimit. Also erstmal den Dump nach überflüssigen Daten durchgehen und die Statistikdaten von Feedstats rausgeworfen. 2500 Einträge ärmer fraß der Importer dann den Dump, spukte aber Feuer und Galle, weil MyGallery nicht beschrifteten Bildern keine Werte zuweist. Die wenigen ” sind zwar schnell eingefügt, aber natürlich mag ein Linux MYSQL-Server es nicht, wenn man ihm Dateien mit Windows Zeilenumbruch vorsetzt. Also das gleiche nochmal im unübersichtlichen Notepad statt dem Wordpad…

Wenigstens läuft jetzt wieder alles. Fast. WP-Print weigert sich die Administrationsoberfläche anzuzeigen und akzeptiert die Übersetzungsdateien nicht mehr. Wo bei es die selben wie vor 5 Stunden sind, wo noch alles lief…

Ich will ins Bett. Und stehe an solchen Tagen wie heute nicht nochmal auf…

5 Sicherheitslücken in WordPress 2.2.1 mit Fixes

Seit Dienstag sind einige neue Sicherheitslücken in WordPress 2.2.1 bekannt. Der Entdecker hat sich leider dazu hinreißen lassen, die Lücken ausführlich zu beschreiben und zu veröffentlichen, bevor sie durch WordPress gefixt wurden. Stattdessen hat er einen “Wurm” geschrieben, der eine der Sicherheitslücken ausnutzt und fünf Lücken schließt.

Durch die Veröffentlichung und die Dokumentation der Bugs sind nun alle WordPress Blogs bedroht, denn das ausnutzen der Sicherheitslücken ist einfach und schnell bewerkstelligt. Um sein Blog nun zu schützen gibt es mehrere Möglichkeiten:

  1. Man vertraut dem Endecker der Sicherheitslücken und lässt den Wurm die Lücken schließen. Dies scheint einfach und zuverlässig zu funktionieren.
  2. Man passt die nötigen Stelle im SourceCode von WordPress manuell an, indem man zB der Anleitung bei bueltge.de folgt.
  3. Man vertraut mir und lädt meine Bugfixes WordPress 2.2.1 Datei herunter. In der Zipdatei finden sich vier Dateien, in denen ich die Bugs nach buetges Anleitung behoben habe. Ich übernehme keine Verantwortung für evtl Datenverluste o.ä. Benutzung auf eigene Gefahr!

Sicherheitshalber macht man ein Backup, bevor man die Dateien verändert, eigentlich sollte aber nichts schiefgehen.

[Nachtrag 5. August 2007]
Wordpress hat unter anderem auf die von beNi gefundenen Bugs reagiert und heute mit WordPress 2.2.2 ein Securityupdate veröffentlicht. Die deutsche Version wird sicher im Laufe des Tages erscheinen.

CopyBlogger Theme – The localizable and the German Version

CopyBlogger_de Theme

The CopyBlogger theme is a WordPress theme by Chris Pearson (web developer from the US).
As I want to use the CopyBlogger theme as the new theme of my blog, I had to translate it to German. The code of the CopyBlogger Theme, as it is downloadable at Chris Pearson’s website, is English and not prepared for translations, which means, that each translator of the theme would have to dive through the code, translate every English word and then test, if he or she found each one. And then he or she had to do it again, just to be sure. To avoid this, WordPress has two special php functions for plugin or theme localization:
__($message) _e($message)
The parameter of these functions becomes translated, if a translation for the message is available. So you don’t need any language files, if you want the theme in English.

I did walk through the code of the CopyBlogger theme and substituted each occurrence of an English phrase.
Phrases which would be directly shown became substituted by < ?php _e('Phrase','copyblogger') ?> and phrases in functions by __('Phrase','copyblogger'). WordPress needs to know, in which localization context the translation is to be found. That’s the reason for the 'copyblogger' in the $message and a change I had to make to functions.php: load_theme_textdomain('copyblogger');
Further additions were < ?php _e('<*!-- - xyz translation by <*a href="your url">your name< */a> --*>','copyblogger'); ?> in the footer.php for the translator credit and a little change in index.php to make to phrase “Comments Off” translatable.

All thats left to do for a translator is, open a program like poEdit, generate a catalog of phrases (or load the de_DE.po) and translate the phrases.
There are three little flaws in the catalog, which have to be translated by hand:

  • in searchform.php all three occurrences of “To search, type and hit enter“ have to be translated to the same words. I couldn’t add this to the catalog, as functionality would be lost by doing so.
  • in 404.php Chris wrote a longer, colloquial text. Any translator has to decide if and how he wants to translate and style this text
  • in nav_menu.php you’ll find the navigation menu links. As they are different at every blog, I see no use in translating them.

I will host the CopyBlogger_localizable theme for the moment, as I could not find the Email address from Chris Pearson to make the theme available for him.

I want to thank Chris Pearson for his cool theme and Tim Zylinski for his Localizing WordPress Themes tutorial. Without the tutorial I would have had no idea how to do this.

CopyBlogger Theme – The localizable Version

Deutsche CopyBlogger Sprachdateien (German language files)

German CopyBlogger Theme (includes the German language files)