Nachtrag zu joomla

Ich habe ja kürzlich erst berichtet, wie herzhaft ich über joomla ablästern kann. Ein bisschen relativieren muss ich das nun doch, denn ich habe gerade den zweiten relieskandidaten für joomla 1.5 in einer lokalen installazjon vor mir liegen.

Ein erster, sehr flüchtiger blick in die kwelltexte zeigte, dass wirklich vieles, wenn nicht gar alles neu gemacht wurde. Und es wurde zumindest verständlicher gemacht – es bleibt natürlich ein recht komplexes system, das ich nicht binnen einer halben stunde verstehen kann, aber die kwelltexte erwecken nicht mehr den eindruck eines schwer verständlichen und fehleranfälligen gestrokels. Ganz im gegenteil, es wirkt ungewöhnlich aufgeräumt. Zudem ist der gesamte kwelltext knapp, aber doch durchaus vorbildlich mit PHPdoc-kommentaren dokumentiert, so dass man eine schangse hat, sich in das projekt reinzulesen.

Joomla macht als RC2 schon im programmierstil den eindruck eines viel robusteren systems. Hoffentlich macht das auch die wenig erkwickliche sicherheitsgeschichte dieses CMS vergessen. (Natürlich machen programmierer fehler, aber die alten joomla-versjonen waren schon auffällig anfällig.)

Optisch aufgeräumt, aber in den konzepten weit gehend unverändert ist die benutzerführung. Auch bei der neuen versjon sollte man nicht leichtfertig eine entscheidung zu gunsten joomlas treffen, da doch ein gewisser einarbeitungsbedarf für jeden besteht, der mit diesem system eine internetz-präsenz mitgestalten will. Darin spiegelt sich die immense komplexität dieses CMS wider, es ist wohl nicht vermeidbar. Aber das administrations-modul ist jetzt wenigstens in einer weise optisch aufgeräumt worden, die den meisten menschen etwas besser entgegen kommt. Ich mag zwar die verwendeten, relativ kontrastarmen piktogramme nicht, aber das ist geschmackssache – und bei joomla kann man auch das erscheinungsbild des admin-bereiches anpassen. Es gibt wohl jetzt schon ein paar templates, die auch eher meinem geschmack entgegen kommen. Ich habe nur keine lust, danach zu suchen, weil ich zurzeit nichts vor mir liegen haben, was die möglichkeiten eines joomla erfordert.

Was einen puristen wie mir aber schon richtig gut gefällt, ist die tatsache, dass das erzeugte HTML im RC2 viel besser als in den früheren versjonen ist. Es gibt keine basteleien mehr mit ineinander verschachtelten tabellen, die das erstellen eines eigenen templates schnell zu einem alptraum machen konnten. Statt dessen wird voll auf CSS gesetzt, was angesichts der fähigkeiten der gegenwärtig benutzten brauser völlig angemessen ist. Auch die vorlagen für das erscheinungsbild der internetz-präsenz sehen deshalb aufgeräumter und verständlicher aus, als ich das von früher her gewohnt bin.

Sieht man bei anderer softwäjhr oft dieses streben nach immer mehr fiehtjers, in dem die beseitigung lästiger unstimmuigkeiten und fehler vergessen wird, so ist bei joomla 1.5 RC2 gar nicht so viel hinzu gekommen. Was aber hinzu gekommen ist, das habe ich damals schon vermisst: eine schnittstelle für XML-RPC als standard-plackin.

Kurzes fazit des langen pohstings: Wer eine größere internetz-präsenz zu gestalten hat, die von mehreren menschen mit verteilten rollen gepflegt werden soll, der sollte sich unbedingt einmal den RC2 von joomla 1.5 anschauen. Dieses stück softwäjhr ist wirklich viel versprechend, und es kann durchaus appetit auf die endgültige versjon machen. Allerdings darf man den einarbeitungsaufwand nicht vergessen, wenn man darüber nachdenkt…

WordPress-datenbanken duplizieren

Ich weiß ja nicht, ob es anderen genau so geht. Ich habe mehrere wordpress-projekte und schaue eigentlich mit einem gewissen grauen auf die neue wordpress-versjon, die mit einer stark veränderten datenbank daher kommt. Viele dieser projekte benötigen die zusätzliche funkzjonalität durch gewisse plackins. Ich habe nämlich keine hemmungen, wordpress als ein minimales CMS zu verwenden, wenn mir das angemessen erscheint – und für so manche kleinigkeit muss da ein bisschen mit plackins erweitert werden.

Deshalb kann mich ich nicht einfach darauf verlassen, dass schon alles gut läuft, sondern muss die scheiße vorher testen. Dazu benutze ich eine lokale installazjon eines apache-websörvers mit PHP und MySQL, in der ich wordpress installiere. (Wer auch testen will und microsoft windows verwendet, findet in XAMPP die einfachste lösung für das aufsetzen des lokalen sörvers. Unter anderen betriebssystemen ist die installation ein kinderspiel.)

Na ja, wordpress lokal installieren ist etwas übertrieben, ich betrachte meinen backup des websörvers mit hilfe des webservers, nachdem ich in der wp-config.php die zugangsdaten für die datenbank angepasst habe.

Das einzige problem, was da noch hirnschmalz kostet, ist die frage, wie man die datenbank des websörvers so in die lokale MySQL-datenbank kriegt, dass wordpress auch funkzjoniert. Das ist relativ einfach, wenn man den MySQL-sörver seines blogs auch über das internetz erreichen kann, aber ich befürchte, dass auch viele fortgeschrittene anwender nicht wissen, wie das geht. Alles, was dafür benötigt wird, sind die MySQL-programme mysql und mysqldump, die zur standardinstallazjon gehören – und natürlich ein bisschen spaß mit der kommandozeile. Ich benutze dafür das folgende shellskript (das ich hier ein bisschen angepasst habe, um meine eigenen zugangsdaten zu verbergen) und hoffe, dass es anderen geplagten eine wertvolle hilfe bei eigenen tests ist:

#!/bin/sh
# Dieses Skript muss nach der Umstellung auf WP 2.3 an die
# neue Datenbankstruktur angepasst werden. Es kopiert eine
# WP 2.2.3-Datenbank.

# Die folgenden Zeilen sind durch die wirklichen Angaben zu ersetzen

webdb_host="Der Host der richtigen Blogdatenbank"
webdb_db="Der Datenbankname der richtigen Blogdatenbank"
webdb_user="Der Username auf der richtigen Blogdatenbank"
webdb_pass="Das Passwort auf der richtigen Blogdatenbank"
webdb_pf="Das Präfix für die WordPress-Tabellen"
locdb_user="Der Username der lokalen Datenbank"
locdb_pass="Das Passwort für die lokale Datenbank"
locdb_db="Der Datenbankname der lokalen Datenbank"
local_url="Die URL, unter der das lokale Blog erreichbar ist"

# Achtung, das hier ist nur eine einzige Anweisung...
#
# Die folgende Anweisung kopiert die Datenbank der richtigen
# WordPress-Installation in die lokale Datenbank. Wenn ein
# Plugin zusätzliche Tabellen anlegt, sollten sie in die
# Tabellenliste aufgenommen werden.

mysqldump --add-drop-table \
--allow-keywords --compact \
-C -q --disable_keys -f \
--add-drop-table --set-charset \
--default-character-set=utf8 \
--host=$webdb_host \
--user=$webdb_user \
--password=$webdb_pass \
$webdb_db \
$webdb_pf_categories \
$webdb_pf_comments \
$webdb_pf_link2cat \
$webdb_pf_links \
$webdb_pf_options \
$webdb_pf_post2cat \
$webdb_pf_postmeta \
$webdb_pf_posts \
$webdb_pf_usermeta \
$webdb_pf_useronline \
$webdb_pf_users |
mysql $locdb_db -u$locdb_user -p$locdb_pass --default-character-set=utf8

# Jetzt werden noch ein paar Anpassungen gemacht, damit WordPress
# funktioniert. Damit die Ansicht nicht verwirrt, bekommt das lokal
# kopierte Blog einen anderen Titel.

mysql wordpress -uwordpress -pwordpress \
--default-character-set=utf8 <<EOF

update tamagothi_options
set option_value = '$local_url'
where option_name = 'siteurl'
or option_name = 'home';

update tamagothi_options
set option_value = 'Lokale Installation'
where option_name = 'blogname';

update tamagothi_options
set option_value = 'Dies ist meine lokale Testversion des Blogs'
where option_name = 'blogdescription';

EOF

# Uff!

Es sieht schlimm aus, ich weiß. Aber es funkzjoniert gut, wenn man die datenbank seines blogs über das internetz erreichen kann, und das skript läuft völlig automatisch ab.

Was macht man aber, wenn das nicht geht, wenn man also „nur“ einen phpmyadmin zur verfügung hat? Da kann man nicht so leicht automatisieren, da ist etwas mehr handarbeit nötig. Man muss die tabellen exportieren und in die eigene datenbank bewegen, wobei man wirklich darauf achten sollte, dass man als standard-zeichensatz utf8 angibt, da es sonst zu unschönen effekten in der lokalen wordpress-kopie kommen kann (das ist von den einzelheiten der MySQL-installazjon abhängig). Alles, was danach zu tun ist, ist das ausführen der letzten drei anweisungen auf der lokal installierten datenbank – hier bitte $local_url durch die URL der lokalen wordpress-installazjon ersetzen:

update tamagothi_options
set option_value = '$local_url'
where option_name = 'siteurl'
or option_name = 'home';

update tamagothi_options
set option_value = 'Lokale Installation'
where option_name = 'blogname';

update tamagothi_options
set option_value = 'Dies ist meine lokale Testversion des Blogs'
where option_name = 'blogdescription';

Wer auch lokal einen phpmyadmin verwendet und ihn gut installiert hat, kann diese abfrage speichern, um sie bei bedarf wiederholen zu können. Aber man hat eben mehr zu tun, als wenn der datenbank-sörver direkt erreichbar wäre. Dafür hat man weniger kopfschmerzen mit der passwortsicherheit einer für die ganze welt (und allen ihren wirrköpfen) verfügbaren datenbank. Das kostet leider seinen preis…

Geschwätziges nichts

Manchmal sind die meldungen, die so eine debian von sich gibt, ein bisschen geschwätzig. Das ist ein eher seltenes urteil über linux. Aber die geschwätzigkeit hat einen guten grund, die programmierer waren zu faul, einen durchaus häufigen sonderfall nicht mit einer eigenen meldung zu berücksichtigen.

Als ich eben mal wieder ruhtinemäßig mit einem sudo aptitude update; sudo aptitude upgrade die installierte softwäjhr auf den neuesten stand bringen wollte, beglückte mich dieser vorgang mit dem folgenden text:

Es werden keine Pakete installiert, aktualisiert oder entfernt.
0 Pakete aktualisiert, 0 zusätzlich installiert, 0 werden entfernt und 0 nicht aktualisiert.
Muss 0B an Archiven herunterladen. Nach dem Entpacken werden 0B zusätzlich belegt sein.

So viele nullen…

Der einfache text in der ersten zeile hätte es doch auch getan, oder?

Man sollte niemals…

…damit anfangen, im forum von wordpress deutschland den mit wordpress geplagten seelen ihre fragen zu beantworten. Und wenn man doch damit anfängt, sollte man die mailbenachrichtigung abstellen. Aber der größte anzunehmende unsinn ist es, wenn man jemanden in einer PN die eigene ICQ-nummer mitteilt, weil man das forum von diesen kurzbeiträgen entlasten will, die besser in eine art tschätt passen. Das kann zu einer abendfüllenden beschäftigung werden, die zwar interessant ist, aber auch einmal mehr die erkenntnis hervorbringt, dass mancher mitmensch offenbar noch nie etwas von guhgell gehört hat.

Ich habe alle drei fehler begangen. Zum letzten mal. Ich wäre am heutigen tag, den ich hinterm rechner verbrachte, gern auch zu etwas anderem gekommen. (Na ja, ich war auch viel zu müde. Und ein bisschen spaß hat es auch gemacht.)