Dokumentation für ModuleStudio 0.7 überarbeitet

in  Verschiedenes , ,

Dokumentation für ModuleStudio 0.7 überarbeitet

Vor ein paar Wochen ist die Dokumentation von ModuleStudio auf Markdown umgestellt worden, was die Mitarbeit für die Nutzer vereinfacht. Auf jeder Seite der Doku befindet sich jetzt ein Edit on GitHub-Link, mit dem man sich direkt einen Fork erstellen und dort die gewünschten Änderungen einbringen kann.

In den letzten Tagen wurde das Handbuch als Vorbereitung für die kommende neue Version überarbeitet und ausgebaut. In diesem Zuge sind auch die veralteten Video-Tutorials aufgelöst worden. Es gibt jetzt nur noch ein zentrales, großes Handbuch statt einem Haufen Einzelseiten. Dies erleichtert insbesondere neuen Nutzern den Einstieg und bringt eine verbesserte Übersicht.

Neues Menümodul in Zikula 1.4.4

in  Zikula Apps , , ,

Neues Menümodul in Zikula 1.4.4

Die kommende Zikula Core-Version 1.4.4 hat ein neues Systemmodul an Bord. Mit dem MenuModule lassen sich unterschiedliche Menüs definieren und einsetzen. Damit werden die bisherigen Blöcke (z. B. extmenu, menutree) abgelöst, die jedoch aus Gründen der Abwärtskompatibilität weiter vorhanden sind und erst mit der Version 2.0 entfernt werden.

Das neue Modul basiert auf dem KnpMenuBundle, welches wiederum die Bibliothek KnpMenu integriert. Dabei handelt es sich um eine objektorientierte Bibliothek zum Erstellen und Darstellen jeglicher Menüs. Insbesondere wird auch eine Twig-Integration direkt mitgeliefert. Ein für Modul- und Theme-Entwickler interessanter Aspekt ist hierbei, dass sich Menüs nun auch programmatisch sehr einfach erstellen lassen. Der interessierte Leser sei hierbei auf die Dokumentation und einen zusätzlichen Artikel verwiesen.

Schönere Property Views in MOST 0.7

in  Verschiedenes ,

Schönere Property Views in MOST 0.7

In ModuleStudio 0.7 wird es eine neue Ansicht für die Eigenschaften von Modellelementen geben. Statt der bisherigen Tabellenansicht ist die neue View eher wie ein Formular aufgebaut und ermöglicht damit eine übersichtlichere Darstellung.

Die neue Ansicht sieht nicht nur schöner aus, sondern erlaubt auch mehr Funktionalität innerhalb der Eigenschaften, wie zum Beispiel die Anzeige von Validierungsfehlern direkt beim jeweiligen Eingabefeld.

Aktuell werden die Formulare noch nach einem Standardverfahren automatisch für die Eigenschaften erstellt. Einzelne Anpassungen, wie zum Beispiel eine Gruppierung der Eigenschaften in unterschiedliche Sektionen oder die Anpassung der Darstellung einzelner Felder, werden nicht mehr für 0.7, sondern in einer späteren Version umgesetzt. Die alte Tabellenansicht wird zusätzlich verfügbar sein, bis die neue Darstellung komplett ausgereift ist.

Erneuertes Build-System für ModuleStudio

in  Builds & Tests , , ,

Erneuertes Build-System für ModuleStudio

Die Komponenten von ModuleStudio werden nun mit anderen Technologien gebaut. Statt Buckminster wird jetzt das Maven-basierte Tycho eingesetzt. Die Jenkins-Jobs wurden auf Pipelines umgestellt und unterstützen somit nun mehrere Branches.

Tycho für Features in mehreren Repositories

Im ersten Schritt habe ich daran gearbeitet, die Builds lokal mit Tycho zum Laufen zu kriegen. Eine Herausforderung dabei war es, die Builds für alle Komponenten, die in unterschiedlichen Git-Repositories liegen, mit möglichst wenig Redundanz zu beschreiben. Dies funktioniert über eine gemeinsame Root-POM, die im zentralen Produkt-Repository liegt. Dieses muß ohnehin allen Builds zusätzlich zum Repository der jeweiligen Komponente bekannt gemacht werden, da das Branding-Bundle von allen Features benötigt wird.

Zikula 1.4.3 mit überarbeiteten Authentifizierungsmethoden

in  Verschiedenes , , ,

Zikula 1.4.3 mit überarbeiteten Authentifizierungsmethoden

Craig Heydenburg hat in den letzten Wochen die Benutzerverwaltung (Users-Modul) im Zikula-Core zur Unterstützung von Twig und Symfony Forms überarbeitet. Doch damit nicht genug: er hat zudem jegliche Funktionalität in Bezug auf die Registrierung und die Anmeldung von Benutzern in ein eigenes Systemmodul namens ZAuth separiert, welches ebenfalls im Core enthalten ist.

Als Teil dieser Auslagerung wurden die Schnittstellen zur Implementierung von Authentifizierungsmethoden generalüberholt. Damit wird es nun einfacher, andere Wege zur Erstellung neuer Benutzer und zum Login derselben anzubieten. Ein Beispiel hierfür ist das OAuth-Modul, mit dem Anmeldungen basierend auf dem OAuth-Standard durchgeführt werden können. Aktuell werden darüber bereits die Anbieter Github und Google unterstützt. Damit kann man sich ganz einfach mit einem bestehenden Github- oder Google-Konto auf Zikula-Seiten, die das Modul installiert haben, anmelden.

Produktkonfigurator mit Live-Vorschau

in  Verschiedenes , , , ,

Produktkonfigurator mit Live-Vorschau

Normalerweise geht es in diesem Blog nicht um Showcases. Da die Realisierung des im Folgenden vorgestellten Konfigurators jedoch technisch sehr interessant gemacht ist, soll es einmal eine Ausnahme geben.

Auf my-orden.de ist ein Orden Designer verfügbar, mit dem sich individuelle Orden für Karneval, Jubiläen und andere Anlässe konfigurieren lassen. Unter der Haube stecken Zikula, ein Modul auf Basis von ModuleStudio, Bootstrap und eine Menge JavaScript.

Bei unterschiedlichen Orden lassen sich verschiedene Materialoberflächen und Farben auswählen. Diese Varianten werden als Rasterbild angezeigt, so dass man einen Eindruck bekommt, wie das jeweilige Produkt aussieht. Zur weiteren Personalisierung lassen sich Bilder und Texte einfügen und mittels zahlreicher Parameter anpassen. Manche Orden können auch mit einem Anhänger kombiniert werden, der wie ein eigenes Produkt behandelt wird und - je nach Modell - ebenfalls ein Bild enthalten kann.

Umstellung der Zikula-Systemmodule für 2.0

in  Zikula Apps , , ,

Umstellung der Zikula-Systemmodule für 2.0

Gegenwärtig werden die verbleibenden Systemmodule, die im Zikula Core enthalten sind, auf Twig und Symfony Forms umgestellt. Während Craig an den großen Brocken Users und Groups arbeitet, habe ich ein paar kleinere Module migriert, im Einzelnen Mailer, PageLock, Admin und Search. Als nächstes werde ich wohl das SecurityCenter angehen. Der Fortschritt an diesem Prozess kann in diesem Ticket verfolgt werden.

Jenkins mit GitHub-Integration, Pipelines und Multibranch Workflows

in  Builds & Tests , ,

Jenkins mit GitHub-Integration, Pipelines und Multibranch Workflows

Gegenwärtig beschäftige ich mich mit zwei interessanten Punkten in Bezug auf Jenkins. Die neu gestaltete Website bietet dazu einen guten Einstiegspunkt.

Der erste Punkt dreht sich darum, Jenkins besser mit GitHub zu verzahnen.

  • Hier steht insbesondere eine engere Integration des Build Status im Raum. Die Nutzung von Service Hooks erlaubt es, einen Build via Push zu starten, was sowohl schneller als auch effizienter als das zeitbasierte Polling des Git-Repositories seitens Jenkins abläuft.
  • Durch die Commit Status API kann der Erfolg oder Fehler eines Builds zu einem Commit auf GitHub reflektiert werden.
  • Der aktuelle Build-Zustand des Repositories sollte auf GitHub angezeigt werden.
  • Auch Pull Requests sollten ebenso wie der Hauptbranch gebaut werden.

Der zweite Bereich behandelt Pipelines, mit denen sich der Workflow eines Jobs flexibel orchestrieren lässt.