Inhalte kanalabhängig ausspielen
Kontexte lassen sich aus Domain, GET-Parameter, IP-Bereich, HTTP-Header, Session-Wert oder einer logischen Verknüpfung davon bilden. Seiten, Menüeinträge und einzelne Inhaltselemente werden je Kontext ein- oder ausgeblendet — ein Seitenbaum für alle Kanäle.
Kein doppelter Seitenbaum
Die Redaktion pflegt eine Seite und markiert je Kontext, wo sie erscheint. Ein paralleler Baum je Kanal, der von Hand synchron gehalten werden muss, entfällt.
Sechs Kontexttypen
Domain, GET-Parameter, IP-Bereich, HTTP-Header und Session-Wert, dazu ein Kombinationstyp, der diese mit UND, ODER und NICHT verknüpft.
Wirkt auf Datenbankebene
Die Sichtbarkeit greift als Doctrine-Query-Restriction. Gesperrte Datensätze erreichen die Ausgabe gar nicht erst — weder im Menü noch in Listen oder in der Suche.
Cache je Kanal
Die aktive Kontextkombination geht in den Seiten-Cache-Schlüssel ein. Jeder Kanal bekommt seinen eigenen Cache-Eintrag, statt dass alle die zuerst gerenderte Variante sehen.
Live ausprobieren
Ein Kontext vom Typ GET-Parameter mit dem Namen „Demo channel“ greift, sobald nrdemo=mobile gesetzt ist. Die beiden Blöcke darunter liegen auf genau dieser Seite:
- /de/erweiterungen/kontexte aufrufen — der Block Standardkanal wird ausgegeben.
- /de/erweiterungen/kontexte?nrdemo=mobile aufrufen — der Block Mobiler Kanal tritt an seine Stelle.