Zikula 3 erscheint als Release Candidate

in  Zikula Apps , , , ,

Zikula 3 erscheint als Release Candidate

Heute wurde der erste Release Candidate für Zikula Core 3.0.0 veröffentlicht.

Einen grundlegenden Überblick über die wichtigsten Änderungen sowie die weiterführenden Links zur Dokumentation und zu den Downloads sind dem Release-Artikel auf der Zikula-Website zu entnehmen: Zikula Core 3.0.0 Release Candidate 1 steht zum Testen bereit!.

Was bringt die neue Version?

Über einige der zahlreichen Neuerungen habe ich hier bereits in früheren Artikeln berichtet. Daher beschränke ich mich in diesem Beitrag darauf, die wichtigsten Links zum Nachlesen noch einmal gebündelt bereit zu stellen:

Zikula Core Dokumentation in neuem Gewand

in  Zikula Apps , ,

Zikula Core Dokumentation in neuem Gewand

Schon seit einiger Zeit werden im GitHub-Repository des Zikula Core die Dinge dokumentiert, die zusätzlich zu den Handbüchern von Symfony, Doctrine, Twig, Bootstrap usw. zu beachten sind. Nun wurde die Struktur dieser Dokumente jedoch überarbeitet und in eine Gesamtsicht gekleidet.

Themenorientiert

Frühere Ansätze von Handbüchern und Doku-Sammlungen haben oft versucht, unterschiedliche Bereiche für Entwickler und Administratoren aufzubauen. Dies hatten wir wieder versucht, sind dann aber zu der Erkenntnis gelangt, dass es zu viele Überschneidungen gibt und das Ganze vor allem unübersichtlich wird.

Weitere neue Features in Zikula Core 3

in  Zikula Apps , ,

Weitere neue Features in Zikula Core 3

Nachdem wir bereits in einigen Artikeln zu Zikula 3 die Änderungen unter der Haube, umfangreiche Modernisierungen, Möglichkeiten für dynamische Formulare und Neuerungen rund um Übersetzungen vorgestellt hatten, sollen nun einige weitere der neuen Features und Änderungen vorgestellt werden.

Module + Themes = Extensions

Die Verwaltung von Modulen und Themes läuft nun unter einem gemeinsamen Dach: Extensions.

Die Verwaltung von Modulen und Themes erfolgt nun in einem gemeinsamen Interface

Zikula 3 bringt zahlreiche Neuerungen rund um Übersetzungen

in  Zikula Apps , , , ,

Zikula 3 bringt zahlreiche Neuerungen rund um Übersetzungen

Nachdem zwischen den Jahren der komplette Unterbau von Zikula 3 auf Stand gebracht worden ist, hat sich der nächste Sprint dem Übersetzungssystem gewidmet. In diesem Beitrag wird kurz dargestellt, welche neuen Funktionen eingebracht worden sind:

  • Es gibt eine verbesserte Unterstützung für Regionen und Sprachvarianten (z. B. de_DE und de_CH neben de).
  • Die automatische Erkennung zusätzlich vorhandener Sprachpakete wurde verbessert.
  • Die Konfiguration für die Übersetzung von Modulen und Themes wird automatisch auf Stand gehalten.
  • Mit der Funktion “Edit in Place” können Übersetzungen direkt auf einer Seite via Mausklick bearbeitet und gespeichert werden.
  • Eine direkt im System verfügbare Weboberfläche erlaubt das Anlegen, Bearbeiten und Entfernen von Übersetzungen für das Kernsystem sowie vorhandene Module und Themes.
  • Auch für Entwickler gibt es neue Vorteile: viele Dinge werden nun automatisch übersetzt, wie etwa Labels, Auswahloptionen und Hilfetexte für Formularfelder, Flash-Nachrichten oder Labels und Linktitel für Einträge in Knp-Menüs. Es muß kein Translator-Objekt mehr injiziert und verwendet werden. Auch beim Extrahieren der Übersetzungskataloge werden diese Nachrichten automatisch mit übernommen.

Zikula startet modernisiert ins neue Jahr

in  Zikula Apps , , , , ,

Zikula startet modernisiert ins neue Jahr

Im Rahmen des letzten Sprints wurde der Unterbau von Zikula 3 auf den neuesten technischen Stand gebracht. Im Folgenden wird kurz zusammengefasst, was hierbei genau passiert ist.

Twig 3

Als erstes sollte die Template-Engine Twig auf die Version 3 gebracht werden. Dies versprach anfangs eine sehr übersichtliche Sache zu werden. Allerdings gab es dann doch noch einige weitere Aspekte zu beachten:

  • Da die templating-Komponente in Symfony 5 entfernt wird, müssen Pfade zu Templates nun der Namespace-Notation folgen. Aus z. B. Bundle:Controller:Action.html.twig wird damit @Bundle/Controller/Action.html.twig.
  • Bedingungen in Schleifen sollten zur neuen filter-Syntax umgeschrieben werden.
  • Die früheren Twig Extensions werden durch neue Twig Core Extra Extensions abgelöst.

Alle wichtigen Änderungen haben wir in einem Dokument zusammengefasst.

Zikula Benutzer und Gruppen in DokuWiki verwenden

in  Zikula Apps , ,

Zikula Benutzer und Gruppen in DokuWiki verwenden

In Zikula lassen sich mit Hilfe unterschiedlicher Authentifizierungsmethoden Nutzer auf verschiedenen Quellen einbinden und mischen. So kann man sich beispielsweise mit dem OAuth-Modul via Facebook, LinkedIn, GitHub oder Google anmelden. Auch LDAP ist eine gängige Methode, externe Anmeldungen zuzulassen.

Ab und an ist jedoch genau das Gegenteil gewünscht: Benutzer aus Zikula sollen sich in einem anderen System anmelden können. Dieser Aufgabe haben wir uns kürzlich für das bekannte Wiki-System DokuWiki angenommen. Dieses bietet die Möglichkeit, verschiedene Plugins zur Authentifizierung einzusetzen. Oftmals ist es hier sogar ohne Programmierung möglich, das Plugin authPDO direkt zu verwenden: hier werden in der Konfiguration verschiedene SQL-Anweisungen hinterlegt, mit denen sich DokuWiki die benötigten Daten aus dem Fremdsystem holt.

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.

Zikula Aktualisierung 2.0.13 mit Sicherheitspatches von Symfony

in  Zikula Apps , ,

Zikula Aktualisierung 2.0.13 mit Sicherheitspatches von Symfony

Der Zikula Core ist soeben in der Version 2.0.13 erschienen, da eine Reihe von sicherheitsbezogenen Änderungen in Symfony eingeflossen sind. Hier der Link zu den einzelnen Änderungen:

Auch wenn die Lücken die Standardinstallationen bzw. -nutzungen von Zikula offenbar nicht direkt betreffen, ist eine Einspielung des Updates natürlich dennoch empfehlenswert.

Weitere Informationen zu den einzelnen Patches können übrigens im Symfony-Blog nachgelesen werden.

Unterschiedliche Startseiten je Domain oder Einstellung einbinden

in  Zikula Apps , , , ,

Unterschiedliche Startseiten je Domain oder Einstellung einbinden

Eine häufige Anforderung besteht darin, die Startseite eines Projektes individuell anzupassen. Zikula bietet zwar die Möglichkeit, eine Controller-Aktion sowie die zu übergebenden Argumente in der Grundkonfiguration einer Seite einzustellen, allerdings ist diese Funktionalität bislang doch eher eingeschränkt. Mit einigen Modulen, wie etwa Content, sind zwar unterschiedliche Inhalte je Sprache auf ein und derselben Seite möglich, aber auch das kann nicht alle Varianten abdecken. Also was für Möglichkeiten gibt es? 😕

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. Symfony erkennt automatisch anhand der Typehints in Konstruktor oder anderen Methoden, welche Services injiziert werden müssen. Zweitens können auch Service Tags mit dem Autoconfiguring automatisch gesetzt werden: Symfony leitet hierbei aus einem Interface ab, welches Tag zu vergeben ist. Sobald also zum Beispiel ein Block oder Content Type gebaut wird, wird dieser automatisch als solcher gekennzeichnet. Wir haben dies nicht nur im Core und allen Systemmodulen eingeführt, sondern natürlich auch im ModuleStudio-Generator. Insbesondere bei Anpassungen generierter Module lassen sich unnötige Arbeitsschritte vermeiden, mußte man doch bisher immer die YAML-Definitionen ändern. Es fliegt also nicht nur unnötiger Code in die Tonne, sondern man spart auch lästige Fleißarbeit.