Wenn wir nun wirklich fertig sind, dann wird es Zeit zurückzublicken. Serendipity 2.0 existiert als Branch auf Github seit Dezember 2012, Überlegungen dazu seit mindestens Januar 2011. Aber es ist ein kleines Team von Entwicklern gewesen, das sich in eine Legacy-Codebasis einarbeiten musste. Was hat sich überhaupt getan?
Ein neues Backend
Das neue Backend ist die große Änderung. Ein Blog hat ja gar nicht so viele Ebenen - das Frontend, das Backend, vielleicht noch den Kern und die Datenbank. Version 2.0 ist die Version des Backends.
Die Smartifizierung
Vor allem gibt es ein neues System, um das Backend zu bauen. In 1.x waren es PHP-Dateien, welche die Logik beinhielten und das HTML ausspuckten, unter include/admin/*.php. Jetzt beinhalten diese Dateien nur Logik, befüllen Variablen und reichen die an die Template-Dateien des Admin-Themes weiter, unter templates/2k11/admin/*.tpl. Es funktioniert also nun genau so, wie auch das Frontend erstellt wird. Nebeneffekt ist, dass dieses Backend-Theme auswechselbar ist!
Das nannten wir die Smartifizierung und war der erste Schritt, getragen von Ian und mir.
2k11 als Backend-Theme
Der zweite Schritt war das neue Admin-Theme, das Matthias auch im Video beschreibt. Wir wollten nicht einfach nur ein neues System haben um das altbackene 1.x-Backend zu zeichnen. Es sollte ein modernisiertes Theme sein, das sich an 2k11 orientiert. Im Rahmen dieses neuen Backends ging es uns nicht allein ums Aussehen. Alle Aspekte des Backends sollten auf den Prüfstand und wenn nötig verbessert werden. Da waren einige große Punkte dabei, die insbesondere Matthias in Angriff nahm, mit Unterstützung von mir vor allem auf der PHP-Ebene.
Ein neues Menü
Von Anfang an sollte das Menü überarbeitet werden. Das Pluginmenü unter Aussehen, sowas muss ja nicht bleiben. Das neue Menü ist unterteilt in Inhalt, Mediendatenbank, Aktivität und Konfiguration. Zusätzlich gibt es oben rechts ein Zusatzmenü für die Optionen, die da nicht reinpassen, wie das Logout. Unten kommt der Menüpunkt Wartung dazu, in dem einige zuvor im Menü verteilte Aktionen wie Thumbnails neu generieren gruppiert wurden.
Ein neuer Editor
Das war teilweise als Experiment gedacht, aber es scheint jetzt so zu bleiben. Das Formular wurde umstrukturiert und die HTML5-Inputelemente genutzt, wo es passt. Buttons wie die Kategoriezuweisung, die man praktisch jedes mal braucht, sind nun zusammen oben gruppiert und können in einem Rutsch gedrückt werden.
Ein neues Dashboard
Wie begrüßte 1.x den Nutzer nach dem Login? Mit einer leeren Seite. Nichts gegen Whitespace, aber da gab es bereits ein sinnvolleres Konzept: Das Dashboard-Plugin. Das ist nun in das Backend integriert und zeichnet anders als andere Dashboards keine sinnlosen Statistiken, sondern zeigt die aktuell nötigen Aktionen, wie neue Kommentare und noch nicht fertige Einträge.
Überarbeitete Mediendatenbank
Der Code im Core der Mediendatenbank war ein Wirrwarr. Obwohl teilweise etwas angepasst ist er das immer noch. Doch bei der Darstellung hat sich einiges getan: Der Uploader ist komplett überarbeitet in einem Tab-Interface, unterstützt Drag&Drop und kann Bilder vor dem Upload verkleinern.
Die Mediendatenbank selbst zeigt per Voreinstellung größere Bilder, hat Overlays und eine angepasste Buttonbar.
Sacht überarbeitetes Plugin-Menü
Das Plugin-Menü ist nun per Tabs in Seitenleisten- und Eventplugins unterteilt. Drag&Drop wird durch ein jQuery-Plugin umgesetzt, es gibt einen Button um zu den Plugineinstellungen zu gelangen und einen neuen Anfasser.
Sachte Überarbeitung nahezu aller Menüs
Wahrscheinlich könnte man durch alle Menüs gehen und würde überall Änderungen sehen. Neue Buttons, neue Strukturen, neue Darstellung. Beispielhaft hier das Kategoriemenü, bei dem die Zebraliste auffällt. Was man dagegen nicht sieht ist die neue Methode, Kategorien mit bereits vorhandenem Namen über HTMLs Formvalidierung noch vor dem Senden abzufangen.
Weniger Labels
Labels sollten ein letztes Mittel sein, eine Funktionalität zu erklären. Besser ist es immer, wenn ein Label gar nicht erst nötig ist. Im alten Backend dagegen fanden sich Seiten mit gleich mehreren dauerhaft anzeigten Boxen mit Hinweistexten, oft genug mit fragwürdigem Nutzen. Neue Nutzer überfordert das, alte Nutzer brauchen die Hinweise sowieso nicht. Labels wurden daher wo nötig verdammt und mit Hinweisen im Fehlerfall oder klareren Menüs ersetzt.
In eine ähnliche Richtung geht die Änderung, Beschreibungstexte für Optionen nur auf Knopfdruck und nicht immer anzuzeigen.
Keine leeren Seiten
Einige Aktionen führten den Nutzer auf Seiten, bei denen nichts als ein kurzer Text angezeigt wurde. Jetzt sollten alle Aktionen zurück zum Menü führen und der Text in einer Box obendrüber angezeigt werden.
Weniger Filter
In der Mediendatenbank, bei der Kommentar- und der Eintragsliste wurden die Filter ersetzt. Als Voreinstellung werden hier nur noch die oft genutzten angezeigt, und sie wurden in Aufklappmenüs gesteckt.
Neue Pluginauswahl
Für 2.0 wurden keine neuen Plugins geschrieben. Aber viele der bestehenden wurden angepasst, sodass ihr Adminmenü in das neue Backend passt.
Andere wurden stärker verändert. Das Syndication-Seitenleistenplugin, das den Feed-Button anzeigt, unterstützt nun subtome, und viele seiner Optionen wurde in den Core verlagert.
Die Vorauswahl der Plugins wurde verändert. Kalender zur Navigation waren vor Jahren eine Blogmode und sind inzwischen verrufen, das fiel weg. Spartacus wurde vorher wahrscheinlich von jedem Serendipity-Nutzer manuell aktiviert, es ist nun eines der automatisch aktivierten Event-Plugins.
Als Hauptergebnis sieht ein neuer Serendipity-Blog nun etwas besser aus, auch im Frontend. Und da auch Core-Plugins nun über Spartacus aktualisiert werden können, kann hier leicht später noch viel getan werden.
Neue Themeauswahl
Es ist immer noch alles da. Aber bisher waren ausgerechnet einige der besonders alten MT-Themes prominent im Serendipity-Archiv gebündelt. Die wurden nach Spartacus verschoben.
Auf lange Sicht wird 2.0 hoffentlich helfen, neue und moderne Themes für Serendipity zu schaffen, weil sie mit 2k11 als Fallback und den neuen Theme-Events nun angenehmer zu bauen sind. Mit photo und bartleby habe ich schonmal zwei anzubieten.
Neu ist die Optionen, dass Backend-Themes unabhängig vom Frontend-Theme ausgewählt werden können. Man könnte jetzt also ein dediziertes Backend-Theme bauen und das mit 2k11 oder auch mit bartleby nutzen.
Sonstiges
Der alte WYSIWYG-Editor war xinha. Der bescherte uns Sicherheitslücken und war generell einfach fällig. CKEditor ist der neue WYSIWYG-Editor. Er ist mächtig, hübsch und anpassbar genug.
Im Core ist nun ein Logger integriert. Der schreibt nach templates_c und muss erst aktiviert werden. Er soll helfen, Probleme im Forum leichter zu diagnostizieren. Immer, wenn Serendipity bisher Fehlermeldungen einfach vom Kern her ausgab, kollidiert das ja nun mit den smartifizierten Templates. Solche Meldungen müssen nun also enweder über das Theme ausgegeben werden, wenn sie an den Nutzer gerichtete Statusmeldungen sind, oder aber sie landen im Logger.
Zum Schluss noch mein Lieblingsfeature: Die Autosave-Funktion des Editors.
Lange Texte zu verlieren ist furchtbar. In s9y konnte das immer dann passieren, wenn beim Speichern oder dem Erstellen der Vorschau der Nutzer durch ein Session-Timeout ausgeloggt wurde oder die Internetverbindung abriss. Nur manchmal rettete der Browser den Inhalt des Editors, meist war alles weg. Jetzt speichert s9y alle paar Sekunden den Text per localstorage explizit im Browser und stellt ihn automatisch wieder her. Diesen Blog habe ich erst vor zwei Wochen aktualisiert und diese Funktion hat mir schon zwei Artikel gerettet.
Zum Abschluss
Das waren nicht alle Änderungen. jQuery ist jetzt überall verfügbar, Magnific-Popups werden statt Popupfenstern verwendet, … . Selbst wenn ich wollte könnte ich nicht alles aufzählen, weil ich einiges schlicht vergessen habe. Die Änderungen von 2.0 sind massiv. Und gleichzeitig ist es doch die kleine Variante gewesen, die Weiterentwicklung ohne Rewrite des Kerns, fast ohne inkompatible Änderungen, bei der das Frontend kaum angerührt und der Charakter von s9y meines Erachtens bewahrt wurde. Aber ich glaube, wir haben doch einiges verbessert.
nureinblog.at am : PingBack
Vorschau anzeigen