Operatoren für Installation, Umgebung, Audit und CSP
Diese Operatoren gehören zum aktuellen Exponential-Kernel und werden in
kernel/common/eztemplateautoload.php registriert. Sie benötigen keine Erweiterung.
| Operator | Klasse und Datei |
|---|---|
installation_name, is_production_system | ExpInstallationOperator, kernel/classes/expinstallationoperator.php |
exp_environment, exp_environment_badge | expEnvironmentOperator, kernel/common/expenvironmentoperator.php |
audit_label | expAuditTemplateOperator, kernel/classes/audit/console/expaudittemplateoperator.php |
csp_nonce | expContentSecurityPolicyOperator, kernel/common/expcontentsecuritypolicyoperator.php |
view_parameter | expViewParameterOperator, kernel/common/expviewparameteroperator.php |
Inhalt
- Die Operatoren: installation_name, is_production_system, exp_environment, exp_environment_badge, audit_label, csp_nonce, view_parameter
- Beispiele
Die Operatoren
installation_name
Generierte Seite: installation_name.
| Parameter | Typ | Erforderlich | Standardwert |
|---|---|---|---|
hide_on_prod | boolean | nein | false |
- Eingabe: keine.
- Rückgabe:
site.ini[SiteSettings] EzInstallationName, ohne umgebende Leerzeichen (eine leere Zeichenkette, wenn der Wert nicht gesetzt ist); mithide_on_prodeine leere Zeichenkette auf einem Produktivsystem.
Der Wert wird einmal pro Anfrage gelesen (ExpInstallationDetailsOutputFilter::installationName(),
kernel/classes/expinstallationdetailsoutputfilter.php). Nutzen Sie ihn, um Testkopien einer Website zu kennzeichnen.
is_production_system
Generierte Seite: is_production_system.
- Eingabe: keine. Parameter: keine.
- Rückgabe:
true, wenn der Installationsname nicht leer ist und in[SiteSettings] ProductionInstallationList[]aufgeführt ist, sonstfalse.
exp_environment
Generierte Seite: exp_environment.
- Eingabe: keine. Parameter: keine.
- Rückgabe: der Name der Umgebung aus der Konstante
EXP_ENV(config.env.php, gelesen voneZINI::environment()) oder eine leere Zeichenkette, wenn sie nicht gesetzt oder ungültig ist (sie muss^[a-z][a-z0-9_-]{0,31}$entsprechen). Die Umgebung entscheidet außerdem, welche zusätzlichen EinstellungsdateieneZINIliest.
if eq( exp_environment(), 'test' )<div class="test-site-banner">Test site</div>/ifexp_environment_badge
Generierte Seite: exp_environment_badge.
- Eingabe: keine. Parameter: keine.
- Rückgabe: das Umgebungsabzeichen der Kopfzeile der Administration als Hash:
level,name,short,release,display,titleundkey.
Das Abzeichen kommt aus site.ini [AdminEnvironment] des aktuellen Siteaccess (expEnvironmentOperator::badge()):
Level:development,test,stagingoderproduction;autoleitet es ausEXP_ENVab (dev/development,test,stage/staging,prod/production/live). Leer, unbekannt oderautoohne passende Umgebung: kein Abzeichen (levelist eine leere Zeichenkette, und alle anderen Felder bleiben leer).Name,ShortName: die Texte; leer übernimmt den übersetzten Namen und das Kürzel der Stufe (DEV, TEST, STAGE, PROD).ReleaseundShowVersion=enabled: Text und die Exponential-Version nach dem Namen, verbunden durch·.BadgeDisplay=alwayszeigt es dauerhaft (displayistalways), jeder andere Wert nur beim Überfahren mit der Maus oder bei Fokus (hover);ShowInTitlemit einem anderen Wert alsdisabledsetzttitle.keyverbindet alle diese Werte für die Schlüssel von cache-blocks, die das Abzeichen zeichnen.
audit_label
Generierte Seite: audit_label.
- Eingabe: der Name eines Audit-Ereignisses wie
content.node.move. Parameter: keine. - Rückgabe: die lesbare Bezeichnung aus der Audit-Taxonomie (
expAuditConsole::label()), übersetzt im Kontextkernel/audit; eine leere Zeichenkette bei leerer oder nicht skalarer Eingabe.
Einen Namen, den die Taxonomie nicht kennt, macht der Operator zu einer Bezeichnung, indem er den ersten Teil weglässt
und Punkte und Unterstriche durch Leerzeichen ersetzt (expAuditTaxonomy::label()); dieser wird nicht übersetzt:
no.such.event ergibt Such event. Die Bezeichnung wird nicht maskiert: {$e.name|audit_label|wash}.
csp_nonce
Generierte Seite: csp_nonce.
- Eingabe: keine. Parameter: keine.
- Rückgabe: die Nonce der Content Security Policy dieser Anfrage (
expContentSecurityPolicy::templateNonce(),kernel/private/classes/expcontentsecuritypolicy.php) oder eine leere Zeichenkette, wenn die Policy des Siteaccess deaktiviert ist oder keine Nonce enthält (nonce=""schadet nicht).
<script nonce="csp_nonce()">...</script>Die Nonce ist bei jedem Aufruf innerhalb einer Anfrage gleich und bei jeder Anfrage neu. Geben Sie sie nie innerhalb
eines cache-block oder eines im View-Cache gespeicherten Templates aus: Die zwischengespeicherte Kopie trüge die
Nonce einer anderen Anfrage, und der Browser würde das Skript blockieren. Noch besser verschieben Sie das Skript in eine
Datei, die über die Skriptliste des Designs geladen wird; sie braucht keine Nonce.
view_parameter
Generierte Seite: view_parameter.
- Eingabe: ein Text oder eine Zahl. Parameter: keine.
- Rückgabe: der Wert als Wert eines View-Parameters,
/(name)/<wert>, so geschrieben, wie jede Ansicht ihn schreibt (expViewParameters::encode(),kernel/classes/expviewparameters.php):/als~2F,(und)als~28und~29,~als~7E,%und+als~25und~2B, der Rest lesbar (ein Leerzeichen%20). Ein Array ergibt eine leere Zeichenkette.
<a href=concat( 'settings/view/', $siteaccess, '/', $file, '/(q)/', $name|view_parameter )|ezurl>...</a>Die Ansicht liest den Wert mit expViewParameters::get() zurück. Schreiben Sie einen View-Parameter nie mit
|urlencode: Apache lehnt das %2F ab, das daraus für einen Schrägstrich wird, und die zweite Dekodierung des
Kernels macht aus %2B ein Leerzeichen. Die Kodierung und ihre Regeln:
View-Parameter: wie ein Wert in der Adresse reist.
Beispiele
Auf dem Siteaccess site, der keinen Installationsnamen, kein EXP_ENV und keine Nonce in seiner Policy hat:
1 installation_name: [installation_name()]
2 hide_on_prod: [installation_name( true() )]
3 is_production_system: is_production_system()|choose( 'no', 'yes' )
4 environment: [exp_environment()]
5 csp_nonce on site: length csp_nonce()|count_chars
6 audit_label: 'content.node.move'|audit_label / 'no.such.event'|audit_labelAusgabe:
1 installation_name: []
2 hide_on_prod: []
3 is_production_system: no
4 environment: []
5 csp_nonce on site: length 0
6 audit_label: Node move / Such eventAuf dem Siteaccess admin, dessen Policy eine Nonce enthält (auf einer Entwicklungsinstallation ist keine Abzeichenstufe gesetzt):
def $badge = exp_environment_badge()
level=[$badge.level] name=[$badge.name] short=[$badge.short] display=$badge.display title=$badge.title|choose( 'no', 'yes' )
csp_nonce on admin: length csp_nonce()|count_chars, same on the second call: eq( csp_nonce(), csp_nonce() )|choose( 'no', 'yes' )Ausgabe:
level=[] name=[] short=[] display= title=no
csp_nonce on admin: length 22, same on the second call: yesVerwandte Seiten
- Content Security Policy für Anwendungen
- Umgebungseinstellungen und Geheimnisse
- 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.