Konfiguration

CMS

Dieser Artikel befasst sich mit den Konfigurationsmöglichkeiten des Page-Moduls.

  1. Generelle Konfiguration
  2. ContentItem-Panels konfigurieren

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.
Nutze den Hangar, um Module einfach konfigurieren zu können. Ausschnitte der 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 Min­dest­an­zahl 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.

Nutze den Hangar, um Module einfach konfigurieren zu können. Ausschnitte der config.json in dieser Dokumentation dienen nur der Veranschaulichung. Es ist nicht nötig, die config.json manuell zu bearbeiten.
« Navigieren Caching & Page Listener »

Kommentare

Du musst eingeloggt sein, damit du Beiträge erstellen kannst.

Fragen