Das News-Modul von Zikula blickt auf eine lange Historie zurück. Schon als ich vor etwa 20 Jahren das erste mal mit PostNuke in Berührung kam, war dort ein News-Modul an Bord. War die Funktionalität noch relativ überschaubar gehalten, erlaubte es doch eine schnelle Publikation von Neuigkeiten und wurde auf sehr vielen Seiten eingesetzt. Über die Jahre wurden weitere Features hinzugefügt; andere Wünsche blieben längere Zeit offen, zum Beispiel in Bezug auf die Behandlung mehrerer Bilder zu einem Artikel.
ModuleStudio erlaubt die Nutzung unterschiedlicher Doctrine-Erweiterungen, indem diese im jeweiligen Anwendungsmodell aktiviert und ggf. konfiguriert werden. Neben Baumstrukturen (tree / nested set), lesbaren Permalinks (sluggable) oder Übersetzungen zur Umsetzung mehrsprachiger Daten (translatable) sowie weiteren Funktionen steht hier auch die Möglichkeit zur Verfügung, die Änderungen an Datensätzen in Form einer Revisionierung aufzuzeichnen. Dieser Beitrag gibt einen Überblick über die damit einhergehenden Features. Als gemeinsame Basis der im Folgenden beschriebenen Funktionen kommt die Loggable-Extension für Doctrine zum Einsatz.
In Zikula 3 werden endlich weitere hilfreiche Funktionen von Symfony verwendet. Zikula 2.x hat bereits auf Symfony 3.4.x aufgesetzt, aber aus Rücksicht auf die Abwärtskompatibilität noch nicht alle Potenziale ausgereizt. Die aktuelle Arbeitsversion von 3.0.0 basiert indes auf Symfony 4.2.4 und setzt noch stärker auf die mit Symfony einhergehenden Möglichkeiten.
Besonders angetan bin ich von den Modernisierungen bei der Dependency Injection: mit dem sogenannten Autowiring werden Services automatisch injiziert, es ist keine manuelle Definition (via YAML oder XML) mehr notwendig.
Seit gestern steht das Content-Modul in der Version 5.1.0 zum Download bereit. Zu den neuen Funktionen zählen neben kleineren Verbesserungen, etwa für den Inhaltstyp zur Integration von Informationen über den Autor einer Seite, unter anderem die neuen Einstellmöglichkeiten in Bezug auf die Sichtbarkeit von Seiten und einzelnen Elementen, über die hier kürzlich berichtet wurde.
Eine Veränderung in der Oberfläche von Content betrifft die Art und Weise, wie neue Inhaltselemente einer Seite hinzugefügt wurden: statt diese via Drag n Drop aus einer Palette auf der linken Seite in den gewünschten Bereich zu verschieben (was Probleme in Verbindung mit der responsiven Darstellung verursacht hatte), wird nun per Knopfdruck ein modales Fenster geöffnet, in dem man den gewünschten Inhaltstyp via Mausklick auswählen kann.
Schon in einer sehr frühen Generation des Content-Moduls zur Inhaltsverwaltung gab es die Möglichkeit, ein Inhaltselement nicht für alle Besucher, sondern entweder nur für alle angemeldeten Nutzer oder für alle nicht angemeldeten Gäste freizugeben. Damit ließen sich beispielsweise unterschiedliche Begrüßungstexte darstellen.
Als wir das Content-Modul kürzlich neu gebaut hatten, wurde diese Funktion bereits etwas erweitert: einzelne Elemente konnten nun auch lediglich für einzelne Benutzergruppen eingestellt werden. Das ist in vielen Fällen hilfreich, etwa wenn man exklusive Inhalte für Partner oder Kunden mit anzeigen möchte.
In ModuleStudio gibt es für jede Entität eine Einstellung namens ownerPermission. Dieser Schalter legt fest, ob Benutzer in der Lage sein sollen, (lediglich) ihre eigenen Daten zu verwalten und zu bearbeiten. Diese Option kann in vielen Anwendungsfällen nützlich sein: in einem Magazin, das Beiträge von mehreren Autoren veröffentlicht, soll beispielsweise jeder Nutzer neue Beiträge einreichen, aber auch nur seine eigenen Beiträge bearbeiten können. Oder vielleicht möchte man in einem Urlaubsportal den Nutzern die Möglichkeit bieten, eigene Reiseangebote einzustellen und diese auch zu verändern.
Bereits seit einigen Jahren ist es möglich, Entitäten in ModuleStudio als geografisch zu kennzeichnen. Dies führt dazu, dass den entsprechenden Objekten Felder zur Speicherung von Koordinaten hinzugefügt werden. In der Detailansicht eines Objektes wird dann mit Hilfe der (sehr flexiblen und mächtigen) Bibliothek Leaflet eine Karte eingebunden. Auch beim Bearbeiten eines Datensatzes wird eine Karte zur Verfügung gestellt, welche die Angabe der Position durch Setzen eines Markers erlaubt. Auch andere Funktionen, wie etwa Geolocation, werden unterstützt.
Nachdem kürzlich einige Module erschienen sind, um Inhalte mit Zikula 2 zu verwalten, haben wir nun zwei mittelgroße Projekte damit aufgebaut. Auch wenn im Detail noch nicht alles 100%ig am Schnürchen lief, ist das Gesamtergebnis unter dem Strich doch sehr erfreulich. Insgesamt fühlt sich das neue Content deutlich “fluffiger” an: die Wege sind kürzer geworden und somit wird eine flüssigere Arbeitsweise unterstützt.
Einige neue Funktionen haben wir im Rahmen der ersten Projekte insbesondere beim Medienmodul nachgerüstet.
Eine neue Version von ModuleStudio steht zum Download auf der Projektseite bereit. Wer das Tool bereits nutzt, kann auch die integrierte Update-Funktion nutzen, um das Programm zu aktualisieren. Der Artikel zum Release gibt einen Überblick über die wichtigsten Neuerungen. Alle Änderungen im Detail lassen sich indes dem Changelog entnehmen.
Eine neue Version von ModuleStudio steht zum Download auf der Projektseite bereit. Wer das Tool bereits nutzt, kann auch die integrierte Update-Funktion nutzen, um das Programm zu aktualisieren. Ein kurzer Überblick über die wichtigsten Neuerungen lässt sich dem Changelog entnehmen.