Siteaccess-Operatoren
Drei in kernel/common/eztemplateautoload.php registrierte Klassen geben Templates die Adressen und Namen der anderen
Siteaccesses der Installation.
| Operator | Klasse und Datei | Arbeit erledigt von |
|---|---|---|
siteaccess_url | ezpSiteAccessURLOperator, kernel/common/ezpsiteaccessurloperator.php | ezpSiteAccessURL (kernel/private/classes/ezpsiteaccessurl.php) |
siteaccess_menu, siteaccess_menu_key | ezpSiteAccessMenuOperator, kernel/common/ezpsiteaccessmenuoperator.php | ezpSiteAccessMenu (kernel/private/classes/ezpsiteaccessmenu.php) |
language_switcher | ezpLanguageSwitcherOperator, kernel/private/eztemplate/ezplanguageswitcheroperator.php | die Klasse aus [RegionalSettings] LanguageSwitcherClass |
Die Beispiele liefen auf der Kommandozeile, daher ist das Schema http, und der Host kommt aus den Einstellungen.
Inhalt
- Die Operatoren: siteaccess_url, siteaccess_menu, siteaccess_menu_key, language_switcher
- Kompilierte Templates
Die Operatoren
siteaccess_url
Generierte Seite: siteaccess_url.
| Parameter | Typ | Erforderlich | Standard |
|---|---|---|---|
siteaccess | Zeichenkette | nein | leer |
- Eingabe: keine.
- Rückgabe: die Adresse der Startseite eines Siteaccess, mit
/am Ende, als Zeichenkette. Ohne Namen ist es die Startseite der Website, zu der der aktuelle Siteaccess gehört (ezpSiteAccessURL::front()):[SiteSettings] FrontSiteAccessdes aktuellen Siteaccess (eine Administration nennt dort ihre Website), sonstDefaultAccess. Ein Siteaccess, der nicht inAvailableSiteAccessList[]steht, ergibt eine leere Zeichenkette.
Die Adresse wird aus Schema, Host und Port der Anfrage und aus der Art ermittelt, wie der Ziel-Siteaccess erkannt wird
(MatchOrder mit host_uri, host und uri; URIMatchType, HostUriMatchMapItems, HostMatchMapItems und das
eigene [SiteSettings] SiteURL des Siteaccess); sie funktioniert also bei Erkennung über URI, Host, Host und URI sowie
Port gleichermaßen. Eine Adresse wird nur verwendet, wenn die Erkennungsregeln mit ihr zu genau diesem Siteaccess
führen, ohne dass vom Pfad etwas übrig bleibt, sodass eine über den Host erkannte Website nie einen Pfad /name/
bekommt, den ihr Host als Modul lesen würde (und mit 404 beantworten würde). In dieser Reihenfolge:
- dieser Host, mit einem Eintrag des Siteaccess in
HostUriMatchMapItemsfür diesen Host, sonst mit seinem URI-Element (oder seinem Schlüssel inURIMatchMapItems); - die eigene
SiteURLdes Siteaccess (Host, Port und Pfad; eine darin enthaltene Indexdatei wird weggelassen), sofern sie nicht leer oderlocalhostist; - ein Host, den
HostMatchMapItemsihm zuordnet, ohne Pfad; - Host und URI eines seiner Einträge in
HostUriMatchMapItems.
Lässt sich für keine davon zeigen, dass sie dorthin führt, wird seine URI auf diesem Host verwendet, sonst seine
SiteURL, wie sie geschrieben ist, sonst dieser Host. Das Schema ist immer das der Anfrage. Mit den Einstellungen einer
Demo, deren Administration einen eigenen Host hat (MatchOrder=host_uri;host;uri,
HostMatchMapItems[]=edit.example.com;admin und =example.com;site,
HostUriMatchMapItems[]=example.com;bold;bold;strict), verlinkt die Administration auf edit.example.com site auf
https://example.com/ und bold auf https://example.com/bold/. Sie wird weder in Anführungszeichen gesetzt noch
maskiert.
1 front: siteaccess_url()
2 bold: siteaccess_url( 'bold' )
3 starter_ger: siteaccess_url( 'starter_ger' )
4 not available: siteaccess_url( 'nosuchsite' )|get_typeAusgabe:
1 front: http://www.example.com/site/
2 bold: http://www.example.com/bold/
3 starter_ger: http://www.example.com/starter_ger/
4 not available: string[0]siteaccess_menu
Generierte Seite: siteaccess_menu.
| Parameter | Typ | Erforderlich | Standard |
|---|---|---|---|
user | Objekt | nein | null |
- Eingabe: keine.
- Rückgabe: ein Hash mit
enabled(boolescher Wert),front(der Eintrag der Website, die die Globus-Schaltfläche öffnet) undgroups(eine Liste von Hashes mitidentifier,siteoderadmin, unditems). Ein Eintrag ist ein Hash mitidentifier,name(SiteName, sonst der Bezeichner),locale,lang,url,display_url(ohne Schema und abschließenden Schrägstrich),currentundadmin.
Das sind die Daten der Globus-Schaltfläche in den Kopfzeilen von admin4 und admin4l, konfiguriert in site.ini
[AdminSiteAccessMenu] des Administrations-Siteaccess: Show, List (related verwendet RelatedSiteAccessList[],
available verwendet AvailableSiteAccessList[]), HiddenSiteAccessList[], AdminSiteAccessList[] und
ListAdministrations. Mit einem Benutzer wird ein Siteaccess außer der Startseiten-Website nur aufgeführt, wenn sich
dieser Benutzer dort anmelden darf (eZUser::canLoginToSiteAccess()); die Admin-Templates übergeben $current_user.
Auf dem Siteaccess admin ohne Benutzer gerendert:
def $menu = siteaccess_menu()
enabled=$menu.enabled|choose( 'no', 'yes' ) key length=siteaccess_menu_key()|count_chars
front: $menu.front.identifier $menu.front.display_url
foreach $menu.groups as $group
$group.identifier: foreach $group.items as $item$item.identifier ($item.locale)delimiter, /delimiter/foreach
/foreachAusgabe:
enabled=yes key length=32
front: site admin.example.com/site
site: bold (eng-US), bold_ger (ger-DE), editor (eng-US), starter (eng-US), starter_ger (ger-DE)siteaccess_menu_key
Generierte Seite: siteaccess_menu_key.
- Eingabe: keine. Parameter: keine.
- Rückgabe: eine MD5-Zeichenkette für Schlüssel von Cache-Blöcken (eine leere Zeichenkette, wenn das Menü
abgeschaltet ist). Sie ändert sich mit den aufgeführten Siteaccesses, der Liste der Administrationen, dem
Startseiten-Siteaccess, dem aktuellen Siteaccess sowie Schema, Host und Port der Anfrage, sodass eine gecachte
Kopfzeile das richtige Menü zeigt. Zeile 1 des Beispiels oben zeigt ihre Länge. Der Schlüssel liest keine Einstellung
der aufgeführten Siteaccesses selbst: Ein geänderter
SiteNameoderLocaleeines von ihnen erscheint erst, nachdem die Template-Caches der Administration geleert wurden.
language_switcher
Generierte Seite: language_switcher.
| Parameter | Typ | Erforderlich | Standard |
|---|---|---|---|
destination | Zeichenkette | nein | leer |
- Eingabe: keine.
- Rückgabe: das, was
setupTranslationSAList()der Klasse in[RegionalSettings] LanguageSwitcherClasszurückgibt, oder nichts, wenn die Einstellung fehlt. DasezpLanguageSwitcherdes Kernels gibt einen Eintrag je[RegionalSettings] TranslationSA[<siteaccess>]=<name>zurück: einen Hash miturl(/switchlanguage/to/<siteaccess>/plus das Ziel),text(der Name) undlocale(ContentObjectLocaledieses Siteaccess). Ein leeres Array, wennTranslationSAnicht gesetzt ist.
Wenn das Ziel kein ? enthält, wird der Query-String der aktuellen Anfrage angehängt. Die url ist ein Pfad für ezurl,
das das Präfix des aktuellen Siteaccess ergänzt; die Ansicht switchlanguage/to (kernel/private/modules/switchlanguage/to.php)
fragt dieselbe Klasse nach der Adresse des Ziels im anderen Siteaccess und leitet dorthin weiter. Auf einer Entwicklungsinstallation setzen nur
einige Siteaccesses TranslationSA; auf starter gerendert:
TranslationSA has ezini( 'RegionalSettings', 'TranslationSA' )|count entries
foreach language_switcher( 'privacy-policy' ) as $sa => $lang
$sa: $lang.text $lang.locale $lang.url
/foreachAusgabe:
TranslationSA has 2 entries
starter: English eng-US /switchlanguage/to/starter/privacy-policy
starter_ger: Deutsch ger-DE /switchlanguage/to/starter_ger/privacy-policyKompilierte Templates
siteaccess_url, siteaccess_menu und siteaccess_menu_key haben Template-Hinweise mit Transformationen: Der Compiler
schreibt einen direkten Aufruf (ezpSiteAccessURL::root() oder front(), ezpSiteAccessMenu::current(),
ezpSiteAccessMenu::key()) in das kompilierte Template, sodass sie zur Laufzeit keine Operatorsuche kosten und bei jedem
Lauf ausgewertet werden, nie zur Kompilierzeit. language_switcher hat keine Hinweise und läuft über modify().
Verwandte Seiten
- URL-, Design-, INI- und HTTP-Operatoren
- Inhaltssprachen
- Alle Template-Operatoren (generiert)
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
Werden Sie Exponential-Partner
Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.