ModuleStudio 1.4.0 wurde soeben veröffentlicht

in  Generator , , , ,

ModuleStudio 1.4.0 wurde soeben veröffentlicht
Eine neue Version von ModuleStudio steht zum Download auf der Projektseite bereit. ModuleStudio 1.4.0 bringt komplette Unterstützung von Anwendungen für das gestern veröffentlichte Zikula 3 und dem damit einhergehenden modernisierten Stack: Symfony 5, Twig 3, Doctrine 2, Bootstrap 4 und Font Awesome 5. Einen kurzen Überblick über die wichtigsten Neuerungen gibt die Release-Ankündigung.

GitHub Actions - Eine Aktion zum Generieren von Zikula-Modulen

in  Builds & Tests , , , , ,

GitHub Actions - Eine Aktion zum Generieren von Zikula-Modulen
Der Standalone-Generator ModuleStudio bietet einen Standalone-Generator, mit dem sich jederzeit eine Anwendung über die Kommandozeile generieren lässt. Einige allgemeine Informationen hierzu sind der Dokumentation zu entnehmen. Ein simples Beispiel für die Nutzung findet sich ferner in diesem Artikel. Eine Besonderheit hierbei ist, dass die verwendete jar-Datei bei jedem Build des Generators aktualisiert wird. Es handelt sich also immer um den aktuellen Git-Stand. Damit bietet es sich an, den Standalone-Generator zur kontinuierlichen Integration zu verwenden.

Funktionale Programmierung in Twig: Collections deklarativ verarbeiten

in  Basics , , , , ,

Funktionale Programmierung in Twig: Collections deklarativ verarbeiten
Seit kurzem haben neue Funktionen in die Template-Engine Twig Einzug gehalten. Diese verändern die Art und Weise, wie mit mehrwertigen Daten umgegangen wird, fundamental. Aus diesem Grund soll dieser Artikel beleuchten, wie man mit den neuen Möglichkeiten umgehen kann. Was heißt deklarativ? Bei “filter, map und reduce” handelt es sich um ein Muster (Pattern) aus der funktionalen Programmierung. Es erlaubt die Veränderung von Sequenzen (Listen, Arrays, Vektoren, usw.) mittels mehrerer Operationen und Manipulationen, an deren Ende ein Ergebnis steht, welches entweder ausgegeben oder weiter verwendet werden kann.

Vortrag zu Zikula und ModuleStudio bei der Symfony User Group in Köln

in  Verschiedenes , , , , ,

Vortrag zu Zikula und ModuleStudio bei der Symfony User Group in Köln
Schon seit einiger Zeit hatte ich den Wunsch, eine Symfony-Gruppe zu besuchen, um dort einmal kurz zu zeigen, wie wir mit Symfony arbeiten. Gestern hatte es schließlich geklappt. In einem sehr angenehmen und lockeren Ambiente durfte ich mit meinem Talk “Maßgeschneiderte Bundles vom Fließband” zunächst Zikula als ein auf Symfony, Doctrine und Twig aufsetzendes Application Framework vorstellen. Anschließend habe ich dann einen Einblick in die modellgetriebene Entwicklung mit ModuleStudio und die mit der Code-Generierung einhergehenden Besonderheiten gegeben.

Ein Blick auf die Entwicklungen des News-Moduls

in  Zikula Apps , , , ,

Ein Blick auf die Entwicklungen des News-Moduls
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.

Funktionen im Generator zur Versionierung von Daten

in  Generator , , ,

Funktionen im Generator zur Versionierung von Daten
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.

Spannende Neuerungen im Zikula Core

in  Zikula Apps , , , , ,

Spannende Neuerungen im Zikula Core
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.

Neue Versionen von Content und MultiHook

in  Zikula Apps , , , ,

Neue Versionen von Content und MultiHook
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.

Flexible Einstellung von Sichtbarkeiten im Content-Modul

in  Zikula Apps , , , ,

Flexible Einstellung von Sichtbarkeiten im Content-Modul
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.

Neuer private-Modus im Generator zur alleinigen Anzeige eigener Daten

in  Zikula Apps , ,

Neuer private-Modus im Generator zur alleinigen Anzeige eigener Daten
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.