Multisites auf Basis von ModuleStudio

in  Zikula Apps , , , ,

Multisites auf Basis von ModuleStudio

Mit dem Multisites-Modul lassen sich beliebig viele Seiten mit einem einzigen Zikula-System betreiben. Mit Vorlagen, die im Prinzip SQL-Dumps repräsentieren, können neue Seiten auf Knopfdruck erstellt werden. Jede Seitenvorlage beinhaltet damit die vorab definierten Strukturen und -daten out of the box.

Jede Internetseite verfügt (aus Gründen der Architektur und der Skalierbarkeit) über eine eigene Datenbank. Es ist auch möglich, dass mehrere Internetseiten mit der gleichen Datenbank arbeiten. Dies erfordert jedoch entsprechende Anpassungen in den verwendeten Themes.

Mittlerweile nutzen wir das Multisites-Modul seit mehreren Jahren aktiv. Im Laufe solch einer Zeitspanne fallen natürlich auch Defizite auf, so dass sich einige Bugs und Feature Requests angesammelt haben. Daher haben wir beschlossen, eine neue Major-Version mit ModuleStudio zu entwickeln. Diese Version 2 wird das Modul nicht nur wartungsfreundlicher und so robuster für die Zukunft machen, sondern auch einige neue Funktionen mitbringen. Dieser Beitrag dient als Appetitmacher und stellt einige Highlights vor.

Vor einiger Zeit habe ich die wichtigsten Ideen in den Issue Tracker des Projektes eingetragen. Um etwas Struktur hinein zu bekommen, habe ich ferner die zwei Meilensteine 2.0.0 und 2.1.0 angelegt.

Da eine Vorlage nicht nur die Systemdaten enthalten muss, sondern auch beliebige Inhalte, wie etwa Inhaltsseiten, News-Artikel, Benutzerberechtigungen und Vieles mehr, mitbringen kann, wollen wir diese Möglichkeiten zukünftig stärker nutzen. Dies bedingt jedoch eine Erweiterung der internen Funktionsweise, die bestimmt, wie eine Seitenvorlage auf eine Datenbank angewendet wird.

Im Juni hatte ich den aktuellen Stand des Moduls bereits nachmodelliert. Heute morgen habe ich dann das Modell erweitert, um auch neue Anforderungen und Funktionen zu berücksichtigen. Das Modell und eine knappe Zusammenfassung der Neuerungen können im übergeordneten Ticket für die Version 2 angeschaut werden. Damit kann die Arbeit an dem eigentlichen Modul bald losgehen.

Natürlich müssen zunächst einmal die bestehenden Funktionen neu integriert werden, so dass das neue Modul das jetzige prinzipiell ersetzen könnte. Daneben sind unter anderem die folgenden Neuerungen für die Version 2.0.0 vorgesehen:

  • Vorlagen und Seiten können in Projekten gruppiert und organisiert werden. Eine Vorlage kann entweder für alle oder nur für bestimmte Projekte zur Verfügung stehen. Dies erleichtert die Verwaltung bei größeren Projekten, in denen eine Vielzahl von Seiten oder ein komplettes Portalnetzwerk erstellt wird. In der Seitenübersicht wird es auch eine Suchfunktion geben, um schnell eine bestimmte Seite finden zu können.
  • Eine neue Funktion soll dafür sorgen, dass eine bestehende Datenbank direkt exportiert und als neue Vorlage zur Verfügung gestellt werden kann.
  • Vorlagen werden parametrisierbar: jeder Parameter steht dabei für einen variablen Platzhalter. Jede Seite, die auf der Vorlage basiert, muss entsprechende Werte für diese Parameter bereitstellen - entweder über das Hochladen einer CSV-Datei (so dass die Parameter je Seite in Excel gepflegt werden können) oder über händische Erfassung via Formular. Beim Anlegen der Seite werden dann die Platzhalter durch die entsprechenden Werte ersetzt.
  • Eine Vorlage, die aktualisiert wurde, soll neu angewendet werden können. Dabei werden alle darauf basierenden Seiten neu erstellt.
  • Es wird möglich sein, eine Seite von ihrer Vorlage zu lösen. Damit wird diese Seite bei einem erneutem Anwenden der Vorlage außen vor gelassen. Die Seite kann bei Bedarf jederzeit wieder einer Vorlage zugeordnet werden.
  • Jede Seite soll optional nur bestimmte Sprachen erlauben. Im Moment ist es so, dass alle multilingualen Seiten automatisch alle im System installierten Locales verwenden. Bei größeren Portalnetzwerken möchte man dies oftmals steuern bzw. einschränken können. Hierzu muss wahrscheinlich auch der Zikula Core angepasst werden.
  • Eine Expertenfunktion soll es ermöglichen, SQL-Kommandos automatisch in allen (oder ausgewählten) Datenbanken anzuwenden.
  • Schließlich soll eine Dokumentation erstellt werden, um die Nutzung des Moduls zu vereinfachen.

Je nachdem, wie schnell die Arbeiten voranschreiten, ist es auch möglich, dass wir das ein oder andere Ticket aus 2.1.0 bereits in 2.0.0 erledigen. Vermutlich sind dort jedoch auch einige Punkte darunter, die ebenfalls einer Core-Anpassung bedürfen. Daher betrachte ich das erst einmal als Prio B. Wichtiger wird da vermutlich vorher eine Migrationsmöglichkeit, um das alte Modul auch in der Praxis ablösen zu können.

Weitere Beiträge in Kategorie Zikula Apps

Kommende Neuerungen in Symfony 6.2
- Gegenwärtig laufen die Arbeiten an der nächsten Symfony-Version 6.2. Wie immer gibt es regelmäßige Einblicke in die wichtigsten, zu erwartenden Features und Verbesserungen. Dieser Beitrag zeigt im …
Zikula 4 - Ansätze für ein leichtgewichtigeres User Management
- Im Rahmen der Schlankheitskur vom Zikula Core sind einige Altlasten bereits entfernt worden. Das Admin-Interface baut nun auf dem EasyAdminBundle auf. Ein größerer Knoten, den es noch zu entwirren …
Zikula 4 und ModuleStudio - Weitere Integration mit dem EasyAdminBundle
- Im letzten Beitrag wurde unter anderem dargestellt, dass Zikula 4 nun das EasyAdminBundle (EAB) integriert um das alte Admin-Interface abzulösen. Zwischenzeitlich sind die Arbeiten daran etwas …
Zikula 4 - Weiteres Ausmisten im Gange
- Getreu dem Motto Wer loslässt, hat die Hände frei wird der Zikula Core gegenwärtig ausgemistet: das Ziel ist es, wieder ein schlankes System zu schaffen, welches nicht jede Funktionalität selbst …
Zikula 4 - Fokus auf die eigenen Stärken
- Im Juli haben wir noch etwas zaghaft damit begonnen, historischen Ballast aus dem Zikula Core zu entfernen. Unter anderem wurden spezielle Themes und das Hook-System ausgesondert. Während der letzten …