Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Siteaccess-Operatoren

Die Kernel-Operatoren, die die Siteaccesses einer Installation kennen - siteaccess_url, siteaccess_menu, siteaccess_menu_key und language_switcher - mit ihren Parametern, den Einstellungen dahinter, was sie zurückgeben…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/template-operators/siteaccess-operators.md

On this page

This page is a translation. Read the English original

Siteaccess-Operatoren

Drei in kernel/common/eztemplateautoload.php registrierte Klassen geben Templates die Adressen und Namen der anderen Siteaccesses der Installation.

OperatorKlasse und DateiArbeit erledigt von
siteaccess_urlezpSiteAccessURLOperator, kernel/common/ezpsiteaccessurloperator.phpezpSiteAccessURL (kernel/private/classes/ezpsiteaccessurl.php)
siteaccess_menu, siteaccess_menu_keyezpSiteAccessMenuOperator, kernel/common/ezpsiteaccessmenuoperator.phpezpSiteAccessMenu (kernel/private/classes/ezpsiteaccessmenu.php)
language_switcherezpLanguageSwitcherOperator, kernel/private/eztemplate/ezplanguageswitcheroperator.phpdie Klasse aus [RegionalSettings] LanguageSwitcherClass

Die Beispiele liefen auf der Kommandozeile, daher ist das Schema http, und der Host kommt aus den Einstellungen.

Inhalt

  1. Die Operatoren: siteaccess_url, siteaccess_menu, siteaccess_menu_key, language_switcher
  2. Kompilierte Templates

Die Operatoren

siteaccess_url

Generierte Seite: siteaccess_url.

ParameterTypErforderlichStandard
siteaccessZeichenketteneinleer
  • 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] FrontSiteAccess des aktuellen Siteaccess (eine Administration nennt dort ihre Website), sonst DefaultAccess. Ein Siteaccess, der nicht in AvailableSiteAccessList[] 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:

  1. dieser Host, mit einem Eintrag des Siteaccess in HostUriMatchMapItems für diesen Host, sonst mit seinem URI-Element (oder seinem Schlüssel in URIMatchMapItems);
  2. die eigene SiteURL des Siteaccess (Host, Port und Pfad; eine darin enthaltene Indexdatei wird weggelassen), sofern sie nicht leer oder localhost ist;
  3. ein Host, den HostMatchMapItems ihm zuordnet, ohne Pfad;
  4. 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_type}

Ausgabe:

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.

ParameterTypErforderlichStandard
userObjektneinnull
  • Eingabe: keine.
  • Rückgabe: ein Hash mit enabled (boolescher Wert), front (der Eintrag der Website, die die Globus-Schaltfläche öffnet) und groups (eine Liste von Hashes mit identifier, site oder admin, und items). Ein Eintrag ist ein Hash mit identifier, name (SiteName, sonst der Bezeichner), locale, lang, url, display_url (ohne Schema und abschließenden Schrägstrich), current und admin.

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}

{/foreach}

Ausgabe:

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 SiteName oder Locale eines von ihnen erscheint erst, nachdem die Template-Caches der Administration geleert wurden.

language_switcher

Generierte Seite: language_switcher.

ParameterTypErforderlichStandard
destinationZeichenketteneinleer
  • Eingabe: keine.
  • Rückgabe: das, was setupTranslationSAList() der Klasse in [RegionalSettings] LanguageSwitcherClass zurückgibt, oder nichts, wenn die Einstellung fehlt. Das ezpLanguageSwitcher des Kernels gibt einen Eintrag je [RegionalSettings] TranslationSA[<siteaccess>]=<name> zurück: einen Hash mit url (/switchlanguage/to/<siteaccess>/ plus das Ziel), text (der Name) und locale (ContentObjectLocale dieses Siteaccess). Ein leeres Array, wenn TranslationSA nicht 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}

{/foreach}

Ausgabe:

TranslationSA has 2 entries
starter: English eng-US /switchlanguage/to/starter/privacy-policy
starter_ger: Deutsch ger-DE /switchlanguage/to/starter_ger/privacy-policy

Kompilierte 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

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.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x