S9y 2.0: Blick hinter die Kulissen

Ein häufig über Serendipity geäußerter – durchaus berechtigter – Vorwurf ist, es sähe „altbacken“ aus. Das von seinen Benutzern so genannte „beste Blogsystem der Welt“ hat leider nur wenige Frontendler in seinen Entwicklerreihen, daher ist die Versorgung mit ansprechenden Templates (insbesondere im Vergleich zu Wordpress) etwas dürftig.

Umso wichtiger ist es, dass zumindest das Standard-Template optisch ansprechend, aber auch technisch solide ist. Im Frontend ist das mit 2k11 bereits gegeben (auch wenn 2k11 noch nicht das Standard-Template ist), in der Version 2.0, die sich derzeit noch in der Alpha-Phase befindet, soll sich das nun auch im Backend ändern.

Malte hat dazu schon ein paar eher technische Dinge gebloggt. Ich hatte versprochen, etwas mehr zur Gestaltung nachzureichen. Und weil ansonsten vermutlich jede(r) ohnehin erstmal den Artikel nach Screenshots durchscrollt, gibt es die gleich direkt am Anfang – zumal sich da seit Maltes Screenshots Einiges getan hat …

Screenshots

Was ist neu?

„Unter der Haube“ ist das neue Backend von Grund auf neu geschrieben in HTML5, CSS2.1 bzw. 3 und jQuery. Ein Grund, warum es so mühselig ist, das alte Backend zu gestalten, ist die Tatsache, dass der HTML-Code tief im Serendipity-Kern abgelegt ist. Dank Malte und Timbalu ist das Backend nun weitestgehend in Smarty-Templates bearbeitbar, deren HTML-Code ich teilweise von Grund auf neu geschrieben oder zumindest sehr rigoros ausgemistet habe.

So werden alle „inline“ (also im HTML) abgelegten CSS- und JS-Teile entfernt bzw. in Stylesheets und Skripte ausgelagert, wobei wir z.T. nun auch Smarty nutzen, um Javascript zu erzeugen, was die Verbindung zwischen Kern und Javascript deutlich leichter macht, da wir z.B. Variablen aus dem Kern per Smarty an das JS übergeben können. Da wir für die Backend-Icons nunmehr ausschließlich einen Iconfont verwenden (d.h. die Icons liegen in Form einer Symbolschriftart vor), kommt das Backend komplett ohne eingebundene Grafiken aus, zudem skalieren die Icons jetzt mit der Browserschriftgröße bzw. dessen Zoom. Der teilweise uralte JS-Code wird modernisiert und nach jQuery portiert, was ihn erheblich einfacher, kürzer und wartbarer macht.

Optisch ist das Ganze – in Anlehnung an 2k11 – sichtlich schlicht gehalten. Ich glaube, dass ein Standard-Template nur so einer breiten Nutzerzahl auf Dauer gefallen kann. Natürlich ist es farblich an die CI von S9y angelehnt, zudem hebt es sich ein wenig vom 2k11-Frontend ab, um klar zwischen Front- und Backend zu unterscheiden. Generell ist eine Design-Richtlinie, das Backend wo es nur geht „aufzuräumen“, also unnötige oder verwirrende Elemente zu entfernen oder zumindest „aufgeräumter“ zu gestalten. Etliche Elemente sind „weggeklappt“ und werden erst durch Benutzeraktionen sichtbar. Zudem haben wir die Menüstruktur etwas umgestellt, um das Backend klarer zu strukturieren und die Orientierung zu erleichtern.

Bonuslevel: Responsive

Wie 2k11 im Frontend wird (voraussichtlich, lies: wenn nichts mehr schief geht) das 2.0-Backend komplett responsive sein, sich also der jeweiligen Bildschirmauflösung anpassen. Das ist in den oben gezeigten Screenshots noch nicht zu sehen, dafür sind die „kleinen“ Layouts noch zu vage. Ich will auch noch nicht sagen, dass jedes Feature damit auch auf kleinen Smartphone-Bildschirmen sinnvoll benutzbar sein wird, aber es ist zumindest die Absicht, das bei den gängigsten Funktionen hinzukriegen. Bestimmte Workflows wird man (denke ich) dennoch lieber an einem PC machen wollen, dafür sind sie einfach zu komplex bzw. nicht genug zu vereinfachen. Auf Tablets sollte das Ganze recht gut funktionieren.

Es gibt nach wie vor viel zu tun und insbesondere zu testen, insofern kann und will ich derzeit noch keinen möglichen Release-Termin für dieses Backend nennen (zumal auch in den Rest der 2.0-Entwicklung derzeit viel Bewegung kommt). Stand heute ist das Backend nur für den S9y-Kern umgesetzt, ich nehme an, dass die Einbindung der externen Plugins nochmal viel Arbeit und ausgiebiges testen mit sich bringen wird – etliche externe Plugins erzeugen neue Bereiche im Backend, die ebenfalls angepasst werden müssen.

Fazit

Ich habe während der Entwicklung dieses Backend viel und lautstark auf Twitter geflucht und mehrfach verkündet, nie wieder ein Backend gestalten zu wollen, aber letztlich kommen wir langsam an einen Punkt, an dem man die Änderungen sehen und abschätzen kann, was daraus werden kann. Es ist nach wie vor viel zu tun, insbesondere in puncto Tests und Optimierungen, aber das Projekt #newbackend ist definitiv auf dem richtigen Weg und fängt langsam an, wieder Spaß zu machen – hoffentlich auch den anderen Entwicklern und Benutzern von Serendipity.