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

Symfony Messenger - Behandlung erneut fehlgeschlagener Nachrichten
- Im Symfony Messenger gibt die Möglichkeit, fehlgeschlagene Nachrichten an eine failed queue zu leiten. In diesem Sammelbecken können diese dann inspiziert und nach Korrektur des zu Grunde liegenden …
Response-Eigenschaften im Zikula Theme-Layer anpassen
- In Zikula gibt es eine Besonderheit zu beachten, welche Einfluss darauf nimmt, wie die aus einem Request resultierende Response zum anfragenden Client gelangt. Per Standard wird die Response in …
Tabellennamen mit Doctrine dynamisch anpassen
- Mit Hilfe der Metadaten von Doctrine lassen sich jegliche Daten zu einer Entität zur Laufzeit verändern. Allerdings kann das in manchen Anwendungsfällen fortwährend notwendig sein, zum Beispiel in …
Kommende Neuerungen in Symfony 5.2
- Vor zwei Tagen wurde Symfony 5.2.0-BETA2 veröffentlicht. Dies nehme ich zum Anlass, um einmal einen Überblick über die wichtigsten neuen Funktionen zu geben, auf die wir uns im Rahmen dieses Updates …
Zikula Core 3.0.3 mit Sicherheits-Update von Symfony 5
- Vor kurzem hatten wir über das Release von Zikula 3.0.1 berichtet, welches wichtige Korrekturen für Zikula 3 bereitgestellt hat. Vor einer Woche wurde die nächste Version 3.0.2 veröffentlicht. …