Konfiguration
Dieser Artikel befasst sich mit den Konfigurationsmöglichkeiten des Page-Moduls.
Generelle Konfiguration
Die Konfigurations-Datei für das Page-Modul findest du unter var/srv/page/config.json
. Folgende Konfigurationen sind möglich:
{ "translatable": true, "autoN2nLocaleRedirectActive": true, "sslSelectable": false, "sslDefault": true, "hooks": { "mainNav": "Main Navigation", "asideNav": "Aside Navigation" }, "cacheClearedOnPageEvent": true, "pageListenerLookupIds": [ "atusch\\model\\ExamplePageListener", "atusch\\model\\OtherPageListener" ] }
Eigenschaften
n2nLocaleUrls |
Siehe API-Dokumentation von PageConfig::areN2nLocalesActive() (Default: true ). |
autoN2nLocaleRedirect |
Siehe API-Dokumentation von PageConfig::isAutoN2nLocaleRedirectAllowed() (Default: true ). |
sslSelectable |
Siehe API-Dokumentation von PageConfig::isSslSelectable() (Default: false ). |
sslDefault |
Siehe API-Dokumentation von PageConfig::isSslDefault() (Default: true ). |
hooks |
Verfügbare Hooks als JSON-Objekt mit Schlüssel (wird im Code verwendet) und Wert (Anzeigename im Rocket). |
cacheClearedOnPageEvent |
Siehe API-Dokumentation von PageConfig::isCacheClearedOnPageEvent() (Default: true ). |
pageListenerLookupIds |
Siehe Aritkel Page Events. |
config.json
in dieser Dokumentation dienen nur der Veranschaulichung. Es ist nicht nötig, die config.json
manuell zu bearbeiten.ContentItem-Panels konfigurieren
Gehen wir davon aus, wir haben folgenden ExamplePageController
mit den ContentItem-Panels "main", "footer" und "aside" implementiert:
class ExamplePageController extends PageController { private static function _annos(AnnoInit $ai) { $ai->m('startPage', new AnnoPage(), new AnnoPageCiPanels('main', 'footer')); $ai->m('standardPage', new AnnoPage(), new AnnoPageCiPanels('main', 'aside')); } public function startPage() { $this->forward('\atusch\view\startPage.html'); } public function standardPage() { $this->forward('\atusch\view\standardPage.html'); } }
Nun möchten wir aber die Typen und Anzahl der ContentItems pro Panel einschränken. Gehen wir davon aus, dass für den ExamplePageController
eine EiSpec mit Id "example-page-controller" vorhanden ist und fiktive ContentItem-Typen mit EiSpecs "ci-article", "ci-image" und "ci-box" existieren, dann können wir config.json
folgendermassen ergänzen, um Beschränkungen zu konfigurieren:
{ "n2nLocaleUrls": true, "autoN2nLocaleRedirect": true, "sslSelectable": false, "sslDefault": true, "hooks":{ "mainNav": "Main Navigation", "asideNav": "Aside Navigation" }, "pageControllers": { "example-page-controller": { "ciPanels": { "main": { "panelLabel": "Main Section", "allowedContentItemIds": ["ci-article", "ci-image"], "min": 1 }, "aside": { "panelLabel": "Additional Information", "allowedContentItemIds": ["ci-box", "ci-image"], "min": 0, "max": 4 } } } } }
In diesem Beispiel haben wir für das Panel "main" die ContentItem-Typen der EiSpecs "ci-article" und "ci-image" erlaubt und die Mindestanzahl auf 1 gesetzt. Das heisst, der Nutzer muss im Rocket mindestens ein ContentItem für dieses Panel erfassen und hat hierfür nur die ContentItem-Typen der EiSpecs "ci-article" und "ci-image" zur Auswahl. ContentItems für das Panel "aside" haben wir auch eingeschränkt und die Anzahl auf 4 begrenzt. Für das Panel "footer" haben wir hingegen keine Beschränkungen definiert. Das heisst, der Nutzer kann beliebig viele ContentItems definieren und hat alle Typen zur Auswahl.
config.json
in dieser Dokumentation dienen nur der Veranschaulichung. Es ist nicht nötig, die config.json
manuell zu bearbeiten.