Skip to content

Serendipity: Weiterentwicklung, Bugfixes und Übersetzungen

Am vorvergangenen Wochenende wurde die neue Feature-Version von Serendipity releast, und damit beginnt die Arbeit an der nächsten Version, aber auch an den im Release noch vorhandenen kleineren Fehlern.

Motiviert durch das Release habe ich mich mit einigen bereits länger bestehenden Wünschen beschäftigt und einige Ergänzungen rund um die Plugins - ein wichtiger Teil von Serendipity - eingebaut. Weil die im Blog selbst vorhandenen Informationen (gerade bei den bereits installierten Plugins) eher spärlich sind, ziert jetzt jedes (extern aus dem Plugin-Repository Spartacus installierte) Plugin ein Link nach eben dort, denn dort findet sich eine Vielzahl von Informationen zu allen Plugins. Außerdem kann Serendipity jetzt nicht nur auf Updates des Blogsystems selbst, sondern auch auf anstehende Plugin-Updates hinweisen. Die optische Darstellung braucht noch eine ganze Menge Liebe (ich setze da auf unseren Frontend-Spezialisten), aber bis zum nächsten Feature-Release ist ja nun auch noch einige Zeit hin, und der Code ist jetzt immerhin da (und kann verbessert werden).

Wer die Änderungen testen und vielleicht auch direkt etwas rundschleifen will, kann sich den aktuellen Stand aus unserem Github-Repository herunterladen und installieren - aber natürlich nur nach einem Backup oder auf einer Testinstanz, bei Entwicklungsversionen geben wir keine Garantien (obschon der Code derzeit eigentlich problemlos lauffähig sein sollte).

Fehlerbehebung

In der vergangenen Woche bzw. am Wochenende habe ich mir dann die in unserem 2.3.0-Release noch vorhandenen Fehler angeschaut.

Etwas Hirnschmalz brauchte die durcheinandergeratene Paginierung bei neu installierten Blogs - Serendipity erstellt jetzt standardmäßig stabile Archive, d.h. solche, bei denen sich der Seiteninhalt nicht ändert. Die Titelseite ist damit nicht mehr Seite 1 des Archivs, sondern die letzte Seite; Seite 1 des Archivs ist die älteste. Damit kam die Seitenanzeige zum Blättern (die es zudem sowieso nur in drei Themes gibt) nicht zurecht. Das Problem war aber m.E. lösbar.

Einigen Bammel hatte ich dann vor dem nicht funktionierenden “Massenlöschen” in der Mediendatenbank, weil der Code doch einigermaßen komplex ist; die Lösung war dann aber ganz einfach (ein isset() in einer Bedingung durch ein !empty() ersetzen) und eine Sache weniger Minuten. Bei der Gelegenheit habe ich dann noch die Internationalisierung verbessert und einen festen Text durch eine Sprachkonstante ersetzt.

Dadurch beflügelt habe ich schließlich (viel zu viel) Zeit in einen schon recht alten Fehlerbericht gesteckt, an dessen Lösung ich schon einmal gescheitert war: wenn Kommentare in älteren Beiträgen durch den Blogbetreiber moderiert werden, sollte nach dem Absenden des Kommentars darauf hingewiesen werden, dass der Beitrag erst freigeschaltet werden muss. Das ist im Code auch vorgesehen, funktionierte bei mir aber nicht. Ein neu eingerichtetes Testblog und ein Haufen Debug-Statements im Code später war ich immer noch ratlos: eine Zeile vor dem Plugin-Hook war die entsprechende (globale) Variable nicht gesetzt, im Hook-Code selbst war sie (unmittelbar vor der Rückgabe) korrekt gesetzt und dann eine Zeile nach dem Hook … falsch. Damit ist die Lösung ja eigentlich klar; einige Stunden später kam ich dann auch drauf: an einem Plugin-Hook können sich verschiedene Plugins einklinken, das ist ja das Prinzip. Und wenn viele Spamschutz-Plugins damit beginnen, dass sie die entscheidende Variable initialisieren … dann überschreibt die Initialisierung von Plugin B den korrekten Wert von Plugin A. Die Lösung war dann natürlich einfach, und: Heureka, es funktioniert.

Mein anderer “Altfehler”, eine Art “Heisenbug”, ist vermutlich bereits behoben, und dann steht eigentlich nur noch ein bislang schwer reproduzierbares PostgreSQL-Problem zwischen uns und einem Patch-Release. Falls zufällig jemand Serendipity mit PostgreSQL einsetzt und das einmal testen kann und möchte …

Übersetzungen

Eigentlich wollte ich dann zum Schluss nur noch die neuen Sprachkonstanten in die Sprachdateien aller von Serendipity unterstützten Sprachen einfügen … und habe mich dann etwas im Bereich der Internationalisierung und der dort vorhandenen Unterstützungsscripts verloren. Ein bißchen hier und da poliert, und dann führte ein Testlauf zu der Erkenntnis, dass wir haufenweise Plugins ohne deutsche Übersetzung haben! Kann ja eigentlich nicht sein - und bevor ich so recht wusste, wie mir geschah, hatte ich über 20 Plugins deutsche Übersetzungen spendiert.

Zum Abschluss habe ich dann noch ein wenig gebastelt und selbst ein Unterstützungsscripts hinzugefügt, dass in den Sprachdateien des Kerns - nicht der Plugins - doppelte Definitionen innerhalb derselben Sprachdatei findet und außerdem Abweichungen zwischen der englischen Sprachdatei und den anderen Sprachversionen auswirft. Das führte einige systematische Fehler zutage, und zudem - je nach Sprachversion - zu einer ganzen Reihe fehlender Texte. Die englische und deutsche Sprachdatei habe ich bereits auf Stand gebracht; den anderen Sprachen werde ich mich dann mal im Urlaub widmen, das ist ja vor allem Fleißarbeit.

Über meine Erfahrungen habe ich dann am Ende noch einen kurzen Beitrag für unser doch weitgehend brachliegendes s9y-Blog verfasst; vielleicht motiviert das ja doch irgendjemand, dessen Muttersprache in den Plugins momentan noch zu kurz kommt, ein paar Texte zu übersetzen.

Hilf mit bei Serendipity!

Lust bekommen, Serendipity auszuprobieren, eine schon eingemottete Installation einmal neu durchzupusten oder gar an der Entwicklung mitzuhelfen?

Dann nichts wie los! - Viel Spaß und Erfolg!

Trackbacks

Mario Hommel am : Mario Hommel via Twitter

Vorschau anzeigen
Serendipity: Weiterentwicklung, Bugfixes und Übersetzungen https://t.co/6Ne2yrQLl3

onli blogging am : Serendipity 2.3.1

Vorschau anzeigen
Mit 2.3.1 gibt es ein gar nicht so ganz kleines Patch-Release kurz nach der Veröffentlichung von 2.3.0. Es sind vor allem Schönheitskorrekturen wie das nun wieder mögliche Löschen mehrerer Mediendatenbankeinträge auf einmal. Gerade deswegen ist ein höchst

Netz - Rettung - Recht am : Serendipity 2.3.1 released

Vorschau anzeigen
Nach Null kommt Eins, und nach Serendipity 2.3.0 folgt das erste Patch-Release Serendipity 2.3.1, das primär die in meinem letzten Blogbeitrag genannten Fehler behebt. Zwei Probleme sind jetzt noch offen: zum einen ein - offensichtlich schon immer besteh

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Noch keine Kommentare

Kommentar schreiben

HTML-Tags werden in ihre Entities umgewandelt.
Markdown-Formatierung erlaubt
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
BBCode-Formatierung erlaubt
Gravatar, Identicon/Ycon Autoren-Bilder werden unterstützt.
Formular-Optionen