CMS:SNIPPET
Gibt ein Snippet (Textbaustein) in der Sprache des Aufrufs aus.
(CMS:SNIPPET key [parameter=wert …])
Methode: Cms::cmsSnippet()
Ohne Schlüssel: der erste Wert ohne = gilt als key
Parameter
| Parameter | Wert | Standard | Pflicht | Beschreibung |
|---|---|---|---|---|
key ¹ |
Snippet-Schlüssel |
– | ja | Schlüssel des Snippets, z. B. custom.weiterlesen (Snippet-Set der Instanz) oder ein Core-Snippet ohne Präfix. |
param[…] |
Text |
– | Werte für Platzhalter: param[name]=Wert ersetzt {name} im Snippet und füllt ICU-Parameter (plural, select). |
|
specialchars |
true / false |
false |
true: Sonderzeichen werden in ihr HTML-Äquivalent umgewandelt (für Attribute). | |
ifempty |
Text |
– | Text, der ausgegeben wird, wenn es das Snippet nicht gibt (ohne ifempty erscheint der Schlüssel). |
|
prefix |
Text |
– | Text, der vorangestellt wird, sofern das Snippet nicht leer ist. | |
suffix |
Text |
– | Text, der angehängt wird, sofern das Snippet nicht leer ist. | |
set |
Array-Index von $set |
– | Der Text wird nicht ausgegeben, sondern in der Variable $set gespeichert. |
¹ kann ohne Schlüssel als erster Wert angegeben werden.
[…] – der Parameter nimmt Unterschlüssel an, z. B. name[schlüssel]=wert.
Anwendung
Feste Beschriftungen einer Website – „Weiterlesen“, „In den Warenkorb“, Überschriften
von Listen – pflegt die Redaktion als Snippets der Instanz in allen Sprachen
(Modul Snippets, siehe Handbuch für Administratoren).
Das Template gibt sie mit CMS:SNIPPET aus, immer in der Sprache des Aufrufs; fehlt eine
Übersetzung, erscheint der englische Text (en_US):
<a class="more" href="(CMS:URL)">(CMS:SNIPPET custom.weiterlesen)</a>
custom. meint das Snippet-Set der Instanz. Ohne Präfix sind die Snippets des Cores
gemeint – im Frontend nur die allgemeinen, nicht die der Backend-Oberfläche.
In einem Attribut maskieren Sie den Text mit specialchars=true:
<button aria-label="(CMS:SNIPPET custom.menue specialchars=true)">…</button>
Platzhalter. param[name] ersetzt {name} im Snippet. So bleibt die Wortstellung
Sache der Übersetzung – etwa das Währungszeichen vor oder hinter dem Betrag:
Snippet custom.preis: en "€{betrag}" de "{betrag} €"
(CMS:NUMBER preis mul=0.01 format="%.2f" set=betrag)
(CMS:SNIPPET custom.preis param[betrag]="{$set['betrag']}")
Beginnt ein Snippet mit einer ICU-Nachricht ({anzahl, plural, one {# Artikel} other {# Artikel}}),
füllt param deren Werte:
(CMS:SNIPPET custom.treffer param[anzahl]="{$set['count']}")
Schlüssel aus dem Datensatz. Der Schlüssel darf PHP-Variablen enthalten – etwa, um einen Auswahlwert zu übersetzen:
(CMS:SNIPPET "custom.status_{$cms['status']}" ifempty="–")
Gibt es das Snippet nicht, steht der Schlüssel selbst auf der Seite – so fällt ein
fehlender Text beim Entwickeln auf. ifempty gibt stattdessen einen Ersatz aus.
Innerhalb eines Parameters eines anderen Befehls lässt sich CMS:SNIPPET nicht
verschachteln; dort liefert {$this->cms->snippet('custom.weiterlesen')} den Text:
(CMS:TEXT teaser suffix=" {$this->cms->snippet('custom.weiterlesen')}")
Stand: camindo CMS 9.1.3