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.
Update-Benachrichtigungen und Links für Plugins
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!
Kommentare
Ansicht der Kommentare: Linear | Verschachtelt