Blogsoftware gewechselt

Ich habe mich entschlossen, die Blogsoftware zu wechseln, und zwar von Serendipity nach WordPress. Ganz leicht gefallen ist mir das nicht, weil ich auch Serendipity (kurz auch S9Y) sehr mag und ich eigentlich nicht unbedingt immer die Platzhirsche unterstützen möchte. (Am Rande sei erwähnt, dass ich auch froh bin, KMU – kleine und mittelständische Unternehmen – und Freiberufler als Kunden zu haben, deren Erfolg mir mehr am Herzen liegt als der von gigantischen Großunternehmen.)

Doch ein paar Sachen bei S9Y haben mich nicht so richtig glücklich gemacht. Zum Beispiel mag ich die Template-Engine Smarty nicht besonders, weil ich sie irgendwie umständlich finde und man Templates und Themes sehr gut allein mit PHP-Bordmitteln erstellen kann. Dann gab es manchmal das seltsame Phänomen, dass überarbeitete Artikel als neue Artikel angelegt wurden. Und es gab noch ein paar Dinge mehr, die ich als »unrund« empfand, auch wenn man mit ihnen leben konnten.

Ein weiterer Punkt ist vielleicht noch wichtig: In meiner Kundschaft sind ein paar, die ein Unternehmens-Blog haben und es mit WordPress betreiben. Da ist es sicherlich nicht verkehrt, wenn ich selbst es verwende.

Und zu guter Letzt gibt es viele Fachblogs, die sich intensiv mit den Möglichkeiten und Feinheiten von WordPress befassen, außerdem gibt es recht viele Fachbücher. Kurzum, die Informationsquellen sind reichhaltiger, was bei eventuellen Problemen entscheidend sein kann. Allerdings muss man sagen, dass auch Serendipity eine sehr gute Community hat.

Für meine Feed-Abonnenten ändert sich übrigens nichts, da die Feedburner-Adresse gleich geblieben ist (http://feeds.feedburner.com/3×8-rss). Ausnahme: Wenn jemand einzelne Kategorien statt die Gesamtheit der Beiträge oder aber die Artikel über das Feed-Symbol in der Adressleiste des Browsers abonniert hatte, muss er oder sie jetzt bitte über die Feedburner-Links oben in der Seitenleiste neu abonnieren. Im Zuge der Umstellungsarbeiten habe ich übrigens jetzt zum RSS-Feed noch einen Atom-Feed dazugenommen: http://feeds.feedburner.com/3×8-atom.

Ein paar Kleinigkeiten sehen jetzt im Blog anders aus als vorher, aber im Wesentlichen ist alles so wie bisher geblieben. Ich hoffe, Sie sind mit der Umstellung zufrieden. Falls Ihnen Fehler auffallen oder irgendetwas nicht gefällt, schreiben Sie bitte einen Kommentar zu diesem Artikel oder schicken Sie mir eine E-Mail über das Kontaktformular, vielen Dank!

miniFeed für Opera

Ich habe gerade eine Erweiterung für den Webbrowser Opera gefunden, die es ermöglicht, mal schnell bei Facebook vorbeizuschauen. Es wird eine kleine Schaltfläche in der Adressleiste installiert. Wenn man darauf klickt, öffnet sich ein mäßig großes Pop-up-Fenster. Hierin kann man überprüfen, ob Facebook-Freunde neue Meldungen geschrieben oder Kommentare abgegeben haben. Und man kann auch eigene Statusmeldungen schreiben. Praktisch, wenn man für diese kleinen Tätigkeiten nicht gleich ein ganzes Browserfenster oder einen neuen Tab beanspruchen möchte.

miniFeed

concrete5: Dashboard unsichtbar nach Upgrade auf 5.5.x

Ein besonderer Fall trat neulich beim Upgrade von 5.4.x auf 5.5.x auf. Das Upgrade wurde zwar einwandfrei durchgeführt, es gab also keine Fehler wegen der geänderten Datenbank – aber als ich mich nach Abschluss des Vorganges erneut einloggen wollte, war kein Dashboard zu sehen. Der Platz für die obere Admin-Leiste war aber offensichtlich reserviert, oder anders gesagt: die Seite erschien ein Stück nach unten verschoben.

Man kann dennoch ans Dashboard dran kommen, nämlich indem man in die Adresszeile des Browsers http://www.meine-domain.de/dashboard oder http://www.meine-domain.de/index.php/dashboard eingibt. Dort kann man dann einen eventuell eingeschalteten Wartungsmodus wieder auf Normalmodus stellen oder nach sonstigen Auffälligkeiten suchen.

Wenn es das alles nicht ist, gibt es noch eine weitere Möglichkeit, die man ausprobieren kann. In meinem Fall war das der ausschlaggebende Punkt. Und zwar prüft man nach, ob in der Footer-Datei des eingesetzten Themas, also in der Datei /themes/mein-theme/elements/footer.php, folgende Angabe im Quelltextes vorhanden ist:
<?php Loader::element('footer_required'); ?>.
Wenn nicht, fügt man die Zeile ein, und zwar weit unten, direkt vor dem schließenden </body>-Tag.

Quelle: http://www.concrete5.org/[…]/cant-log-in-after-update-to-5.5/.
Danke an Andy Adiwidjaja für diesen wertvollen Hinweis!

FlatPress: Blogsystem ohne Datenbank

Wer ein Blog betreiben oder als Webdesigner eines für einen Kunden einrichten möchte, aber keine Datenbank zur Verfügung hat, kann auf ein Blogsystem ausweichen, das die Daten in Textdateien, sogenannte »flat files« speichert. Eins dieser Systeme ist FlatPress. Wie der Name schon andeutet, orientiert es sich an WordPress, ist damit aber nicht kompatibel, das heißt: WordPress-Plugins lassen sich in FlatPress nicht nutzen.

Und es ist wesentlich weniger leistungsfähig. Es ist kein Mehrbenutzer-System, es bietet keine Zeitsteuerung, keine Versionierung und meines Wissens auch keine XML-RPC-Schnittstelle zum Fernpublizieren. Aber in vielen Fällen braucht man das alles auch gar nicht.

FlatPress verwendet die Template-Engine Smarty. Es lassen sich recht leicht eigene Themes basteln, falls man keins der angebotenen verwenden möchte, sondern etwas Individuelles braucht. Auch ein RSS- und Atom-Feed lässt sich erstellen. In die Seitenleiste kann man Widgets platzieren, zum Beispiel ein Suchfeld, den zu abonnierenden Newsfeed, eine Auflistung der neuesten Artikel und ein nach Monaten sortiertes Archiv (diese Dinge sind als Plugins recht einfach zuschaltbar).

Damit stillt FlatPress die Grundbedürfnisse eines Bloggers. Natürlich lassen sich auch statische Seiten anlegen, sodass man es auch als kleines CMS verwenden kann.

Und die Datensicherung und -wiederherstellung ist einfach: Dateien (insbesondere den Ordner /fp-content/content) per FTP auf den lokalen PC kopieren und im Bedarfsfall wieder zurück auf den Webserver. Datenbank-Sicherungen (Dumps) entfallen ja.

Fazit:
FlatPress ist ein schlankes und schnelles Blogsystem, das sich anbietet, wenn keine Datenbank zur Verfügung steht, man als Einzelner bloggt und nur Basis-Funktionalität benötigt.

avast!-Sandbox

Ich hatte mehrmals das seltsame Problem, dass sich auf meinen Windows®-Computern einige Programme nicht als geplanter Task starten ließen oder Programmeinstellungen nicht gespeichert wurden. Es dauerte einige Zeit, bis ich dahinter kam, was los war:

Es lag an den installierten Internet-Sicherheits-Paketen. Auf dem einen Computer habe ich avast!, auf dem anderen GData (das unter anderem die avast!-Engine verwendet). Ich hatte nicht bemerkt, dass sie die Ausführung mancher Programme nur in der Sandbox vornahmen. Nach Löschung der Sandbox-Ordner unter C:\ und Abstellung der Sandbox-Funktionalität lief wieder alles normal.

Und dabei waren die »verdächtigen« Programme ganz normale, gekaufte Anwendungsprogramme aus offiziellen Quellen. Manchmal ist Sicherheitssoftware eben überpingelig.

Schlanke Alternative zu Mozilla Thunderbird

Mir gefällt der E-Mail-Client Mozilla Thunderbird. Es gibt ihn für die drei gängigen Betriebssysteme. Man hat ein Adressbuch gleich mit dabei und kann den Kalender/PIM Lightning als Erweiterung dazu installieren. Aber Thunderbird ist nicht gerade ein Leichtgewicht.

Ein schlankeres Programm ist zum Beispiel Sylpheed. Ein Adressbuch ist auch hier mit dabei. Prinzipiell lassen sich Plug-ins installieren; leider gibt es nur ein einziges offizielles. Es kann Anhänge aus empfangenen E-Mails entfernen, um Platz zu sparen. In der Windows-Version ist es schon gebrauchsfertig installiert.

concrete5: Upgrade von 5.4.x auf 5.5.x

Das CMS concrete5 wurde ja vor einigen Monaten (Dezember 2011) komplett runderneuert. Die 5.5er-Versionen unterscheiden sich nicht nur in Aussehen und Bedienung des Dashboards von den 5.4ern und einem neuen Standard-Theme mit Gewichtung auf der Blogfunktion. Nein, es wurden auch Änderungen an einigen Datenbank-Tabellen vorgenommen.

Und das kann bei manchen Webhostern bzw. in bestimmten Server­kon­fi­gu­ra­tio­nen zu Problemen beim Upgrade führen. Im schlimmsten Fall ist die Website nach dem Upgrade nicht mehr erreichbar und spuckt Fehler­meld­un­gen aus. Man kann zwar die Datenbank von Hand nachkonfigurieren, aber das ist sehr aufwändig. Und nach meinen Erfahrungen treten immer wieder neue Fehler auf. Bei kleineren Websites geht da eine komplette Neuinstallation schneller von der Hand.

Auf jeden Fall sollten kurz vor dem Upgrade Datensicherungen durchgeführt werden! Speichern Sie den Datenbank-Dump (Dashboard > Verwaltung > System & Wartung > Sicherung & Wiederherstellung) sowohl auf dem Werbserver als auch auf Ihrem PC ab. Und vorsichtshalber kopieren Sie auch alle Dateien per FTP auf Ihren lokalen PC.

Wie gesagt: Im Regelfall wird wohl alles glatt gehen. Aber wenn nicht, ist es gut, wenn man Backups zur Hand hat und erst mal schnell die Website wieder in den vorherigen Zustand zurück versetzen kann.

concrete5: Date Navigation eindeutschen

Die Datumsnavigation (Date Navigation) in concrete5 kann zum Beispiel die Artikelüberschriften eines Blogbereiches nach Erscheinungsdatum sortiert ausgeben. Das Problem ist nur, dass PHP die als Wort ausgeschriebenen Zeit- und Datumsangaben nur in englischer Sprache kennt. Man kann das normalerweise mit Hilfe eines Arrays, der den englischen Monatsnamen die deutschen zuordnet, zwar übersetzt ausgeben lassen, aber im Falle dieses DateNav-Blockes habe ich das nicht hinbekommen.

Und in der deutschen Übersetzungsdatei (/languages/de_DE/LC_MESSAGES/messages.po), die man bekommt, wenn man die deutsche Entwicklerversion von c5 über Github herunter lädt, sind weder Monatsnamen noch Wochentage eingepflegt.

Man kann aber selber eine Sprachdatei anfertigen. Man erstellt sich eine PHP-Datei, die einfach nur den folgenden Inhalt hat:

<?php
print t('Monday');
print t('Tuesday');
print t('Wednesday');
print t('Thursday');
print t('Friday');
print t('Saturday');
print t('Sunday');

print t('January');
print t('February');
print t('March');
print t('April');
print t('May');
print t('June');
print t('July');
print t('August');
print t('September');
print t('October');
print t('November');
print t('December');
?>

Diese Datei speichert man zum Beispiel als datumsangaben_de.php auf dem heimischen Rechner. Dann legt man mit Poedit (kostenlos für Windows®, Mac OS X® und Linux erhältlich) einen neuen Katalog an und liest die genannte Datei ein (Menü > Katalog > Aus Quelltexten aktualisieren). Die englischen Wörter kann man nun übersetzen. Anschließend speichert man die Übersetzung zum Beispiel als datumsangaben_de.po ab. Dabei wird auch automatisch eine bis auf die Dateiendung gleichnamige, aber kompilierte Datei erzeugt, also in unserem Fall datumsangaben_de.mo. Diese lädt man in das Sprachverzeichnis von concrete5 hoch, genauer gesagt in /languages/de_DE/LC_MESSAGES/datumsangaben_de.mo.

Beim nächsten Seitenaufruf, zumindest nach einem Leeren des Cache in concrete5 und im Webbrowser, werden nun die deutschen Da­tums­be­zeich­nun­gen angezeigt.

Und hier sind die fertigen Dateien (Zip, 2,2 KiB).


Danke für den Tipp an Tomislav Huic im concrete5-Forum.

concrete5: Duplicate Content trotz .htaccess

Ich hatte kürzlich das Problem, dass eine mit dem CMS concrete5 erstellte Website sowohl ohne das www. davor als auch mit angezeigt wurde. Suchmaschinen können das als unerwünschten doppelten Inhalt werten.

Ich hatte im Dashboard die »Pretty URLs« eingeschaltet und zusätzlich in der Datei .htaccess einen permanenten Redirect eingerichtet, aber seltsamer Weise ohne Wirkung (»domain« muss im Beispiel unten natürlich durch den richtigen Domainnamen ersetzt werden):

# --- Doppelten Content vermeiden ---
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain.de\.de$
RewriteRule ^(.*)$ http://www.domain.de/$1 [R=permanent]

Normalerweise führt das dazu, dass immer auf die Subdomain www. umgeleitet wird. Dass sie eigentlich unnützer Ballast ist, soll an dieser Stelle nicht diskutiert werden. Es hat sich so eingebürgert, und mancher Benutzer ist vermutlich befremdet, wenn es fehlt. Doch wer will, kann ja genau umgekehrt vorgehen, also von mit www. auf ohne umleiten.

Jedenfalls, wie gesagt, nützte das nichts, was ich sehr seltsam finde. (Ich hatte allerdings schon mehrmals das Problem, dass unter concrete5 bestimmte, normale Angaben in der .htaccess in bestimmten Serverumgebungen nicht funktionieren oder zu Fehlern führen.) Nach langer Suche fand ich endlich die Lösung. Eine Zeile zusätzlichen Codes in der Datei /config/site.php brachte den gewünschten Erfolg:
define('BASE_URL', 'http://www.domain.de');

Der Quelltext der /config/site.php sollte übrigens kein schließendes ?> enthalten und keine Leerzeilen am Ende, weil das auch wieder in bestimmten Umgebungen zu Fehlern führen kann.

HeidiSQL 7.0

Ich habe es erst heute bemerkt: Bereits seit dem 12. Februar gibt es Ansgar Beckers HeidiSQL in der Version 7.0. Die Neuerungen und Bugfixes kann man hier ablesen: HeidiSQL 7.0 released. Es handelt sich um einen kostenlosen Editor für MySQL®-Datenbanken. Natürlich wird auch der Open-Source-Ableger MariaDB unterstützt.

Kommerzielle Tools ähnlicher Güteklasse sind richtig teuer. Wer also HeidiSQL regelmäßig und vor allem beruflich nutzt, sollte die Weiterentwicklung durch eine Spende unterstützen.