Module
Table of Contents
Module haben in SetaSite unter anderem folgende Möglichkeiten:
- Zusätzliche Properties für Seiten oder Benutzer hinzufügen
- Blöcke hinzufügen
- Neue Tabellen hinzufügen
- Routen hinzufügen
- auf Events reagieren
Module können innerhalb des SetaSite-Ordners im modules-Ordner erstellt werden. In dem entsprechendem Ordner muss ein Ordner angelegt werden mit dem Namen vom Modul, innerhalb des Modul-Ordners muss es eine Klasse mit dem Namen "\com\setasign\SetaSite\CustomModules\ModuleName\ModuleName" geben (beachte dass der Modulname der Klassenname UND innerhalb des Namespaces sein muss). Neben der Modulklasse sollte es noch eine Konfigurationsdatei "config.ini" geben.
Die Modulklasse MUSS ModuleInterface implementieren. Idealerweise erweitert die Modulklasse die Klasse AbstractModule.
Es ist möglich einem Modul eine eigene Konfiguration mitzugeben. Beispiel (setasite.ini): modules.Rewrite = @@rewriteModule.ini (wird dem Rewrite-Modul die rewriteModule.ini-Config mitgeben)
Der Construktor der Modul-Klasse wird vom Di gefüllt. Das letzte Argument ist immer die Module Config.
Properties hinzufügen
Properties können über injekten der PageProperties und UserProperties Klassen hinzugefügt werden. Dabei müssen sehr wahrscheinlich auch PageTableNames / UserTableNames erweitert werden und das Module\InstallInterface implementiert werden damit die Property auch gespeichert werden kann.
Blöcke hinzufügen
Damit ein Modul eigene Blöcke hinzufügen kann muss das Module\BlockFactoryInterface implementiert werden kann. Die Standardimplementierung ist lediglich:
/**
* @inheritDoc
*/
public function registerBlocks(BlockFactory $blockFactory): void
{
$blockFactory->registerBlocks(__DIR__ . '/Blocks', __NAMESPACE__ . '\Blocks');
}
