Latte Filter
In Templates können wir Funktionen verwenden, die bei der Anpassung oder Umformatierung von Daten in die endgültige Form helfen. Wir nennen sie Filter.
capitalize |
Kleinbuchstaben, erste Buchstaben der Wörter groß |
firstUpper |
konvertiert den ersten Buchstaben in einen Großbuchstaben |
lower |
konvertiert in Kleinbuchstaben |
upper |
konvertiert in Großbuchstaben |
ceil |
rundet eine Zahl auf eine bestimmte Genauigkeit auf |
floor |
rundet eine Zahl auf eine bestimmte Genauigkeit ab |
round |
rundet eine Zahl auf eine bestimmte Genauigkeit |
escapeUrl |
escapet einen Parameter in einer URL |
noescape |
gibt eine Variable ohne Escaping aus |
query |
generiert einen Query-String in einer URL |
Es gibt außerdem Escaping-Filter für HTML (escapeHtml
und escapeHtmlComment
), XML
(escapeXml
), JavaScript (escapeJs
), CSS (escapeCss
) und iCalendar
(escapeICal
), die Latte selbst dank kontextsensitivem
Escaping verwendet und die Sie nicht explizit schreiben müssen.
checkUrl |
behandelt eine URL-Adresse gegen gefährliche Eingaben |
nocheck |
verhindert die automatische Behandlung einer URL-Adresse |
Latte überprüft automatisch die Attribute src
und
href
, sodass Sie den checkUrl
-Filter fast nie verwenden müssen.
Alle Standard-Filter sind für Zeichenketten in UTF-8-Kodierung ausgelegt.
Verwendung
Filter werden durch einen senkrechten Strich notiert (vor dem ein Leerzeichen stehen kann):
<h1>{$heading|upper}</h1>
Filter (in älteren Versionen Helper genannt) können verkettet werden und werden dann in der Reihenfolge von links nach rechts angewendet:
<h1>{$heading|lower|capitalize}</h1>
Parameter werden nach dem Filternamen durch Doppelpunkte oder Kommas getrennt angegeben:
<h1>{$heading|truncate:20,''}</h1>
Filter können auch auf Ausdrücke angewendet werden:
{var $name = ($title|upper) . ($subtitle|lower)}</h1>
Benutzerdefinierte Filter können auf diese Weise registriert werden:
$latte = new Latte\Engine;
$latte->addFilter('shortify', fn(string $s, int $len = 10) => mb_substr($s, 0, $len));
Im Template wird es dann so aufgerufen:
<p>{$text|shortify}</p>
<p>{$text|shortify:100}</p>
Filter
batch (int $length, mixed $item): array
Ein Filter, der die Ausgabe linearer Daten in Form einer Tabelle vereinfacht. Er gibt ein Array von Arrays mit der angegebenen Anzahl von Elementen zurück. Wenn Sie einen zweiten Parameter angeben, wird er verwendet, um fehlende Elemente in der letzten Zeile zu ergänzen.
{var $items = ['a', 'b', 'c', 'd', 'e']}
<table>
{foreach ($items|batch: 3, 'No item') as $row}
<tr>
{foreach $row as $column}
<td>{$column}</td>
{/foreach}
</tr>
{/foreach}
</table>
Gibt aus:
<table>
<tr>
<td>a</td>
<td>b</td>
<td>c</td>
</tr>
<tr>
<td>d</td>
<td>e</td>
<td>No item</td>
</tr>
</table>
Siehe auch group und das iterateWhile Tag.
breakLines
Fügt vor jedem Zeilenumbruchzeichen ein HTML-Tag <br>
ein
{var $s = "Text & with \n newline"}
{$s|breakLines} {* gibt "Text & with <br>\n newline" aus *}
bytes (int $precision=2)
Formatiert die Größe in Bytes in eine menschenlesbare Form. Wenn Ländereinstellungen gesetzt sind, werden die entsprechenden Dezimal- und Tausendertrennzeichen verwendet.
{$size|bytes} 0 B, 1.25 GB, …
{$size|bytes:0} 10 B, 1 GB, …
ceil (int $precision=0)
Rundet eine Zahl auf eine bestimmte Genauigkeit auf.
{=3.4|ceil} {* gibt 4 aus *}
{=135.22|ceil:1} {* gibt 135.3 aus *}
{=135.22|ceil:3} {* gibt 135.22 aus *}
capitalize
Wörter beginnen mit Großbuchstaben, alle verbleibenden Zeichen sind klein. Erfordert die PHP-Erweiterung
mbstring
.
{='i like LATTE'|capitalize} {* gibt 'I Like Latte' aus *}
Siehe auch firstUpper, lower, upper.
checkUrl
Erzwingt die Behandlung einer URL-Adresse. Überprüft, ob die Variable eine Web-URL enthält (d.h. HTTP/HTTPS-Protokoll) und verhindert die Ausgabe von Links, die ein Sicherheitsrisiko darstellen können.
{var $link = 'javascript:window.close()'}
<a data-href={$link|checkUrl}>geprüft</a>
<a data-href={$link}>ungeprüft</a>
Gibt aus:
<a data-href="">geprüft</a>
<a data-href="javascript:window.close()">ungeprüft</a>
Siehe auch nocheck.
clamp (int|float $min, int|float $max)
Begrenzt einen Wert auf den angegebenen inklusiven Bereich von min und max.
{$level|clamp: 0, 255}
Existiert auch als Funktion.
dataStream (string $mimetype=detect)
Konvertiert den Inhalt in das Data URI-Schema. Damit können Bilder ohne die Notwendigkeit externer Dateien in HTML oder CSS eingebettet werden.
Angenommen, wir haben ein Bild in der Variable $img = Image::fromFile('bild.gif')
, dann
<img src={$img|dataStream}>
Gibt beispielsweise aus:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==">
Erfordert die PHP-Erweiterung fileinfo
.
date (string $format)
Formatiert Datum und Uhrzeit gemäß der von der PHP-Funktion date verwendeten Maske. Der
Filter akzeptiert Datum im UNIX-Timestamp-Format, als Zeichenkette oder als Objekt vom Typ DateTimeInterface
.
{$today|date:'j. n. Y'}
Siehe auch localDate.
escapeUrl
Escapet eine Variable zur Verwendung als Parameter in einer URL.
<a href="http://example.com/{$name|escapeUrl}">{$name}</a>
Siehe auch query.
explode (string
$separator=''
)
Teilt eine Zeichenkette anhand eines Trennzeichens in ein Array. Alias für split
.
{='one,two,three'|explode:','} {* gibt ['one', 'two', 'three'] zurück *}
Wenn das Trennzeichen eine leere Zeichenkette ist (Standardwert), wird die Eingabe in einzelne Zeichen aufgeteilt:
{='123'|explode} {* gibt ['1', '2', '3'] zurück *}
Sie können auch den Alias split
verwenden:
{='1,2,3'|split:','} {* gibt ['1', '2', '3'] zurück *}
Siehe auch implode.
first
Gibt das erste Element eines Arrays oder das erste Zeichen einer Zeichenkette zurück:
{=[1, 2, 3, 4]|first} {* gibt 1 aus *}
{='abcd'|first} {* gibt 'a' aus *}
floor (int $precision=0)
Rundet eine Zahl auf eine bestimmte Genauigkeit ab.
{=3.5|floor} {* gibt 3 aus *}
{=135.79|floor:1} {* gibt 135.7 aus *}
{=135.79|floor:3} {* gibt 135.79 aus *}
firstUpper
Konvertiert den ersten Buchstaben in einen Großbuchstaben. Erfordert die PHP-Erweiterung mbstring
.
{='the latte'|firstUpper} {* gibt 'The latte' aus *}
Siehe auch capitalize, lower, upper.
group (string|int|\Closure $by): array
Filter, der Daten nach verschiedenen Kriterien gruppiert.
In diesem Beispiel werden die Tabellenzeilen nach der Spalte categoryId
gruppiert. Die Ausgabe ist ein Array von
Arrays, wobei der Schlüssel der Wert in der Spalte categoryId
ist. Lesen Sie die
detaillierte Anleitung.
{foreach ($items|group: categoryId) as $categoryId => $categoryItems}
<ul>
{foreach $categoryItems as $item}
<li>{$item->name}</li>
{/foreach}
</ul>
{/foreach}
Siehe auch batch, die Funktion group und das Tag iterateWhile.
implode (string $glue=''
)
Gibt eine Zeichenkette zurück, die eine Verkettung der Elemente einer Sequenz ist. Alias für join
.
{=[1, 2, 3]|implode} {* gibt '123' aus *}
{=[1, 2, 3]|implode:'|'} {* gibt '1|2|3' aus *}
Sie können auch den Alias join
verwenden:
{=[1, 2, 3]|join} {* gibt '123' aus *}
indent (int $level=1, string
$char="\t"
)
Rückt Text von links um eine bestimmte Anzahl von Tabulatoren oder anderen Zeichen ein, die im zweiten Argument angegeben werden können. Leere Zeilen werden nicht eingerückt.
<div>
{block |indent}
<p>Hello</p>
{/block}
</div>
Gibt aus:
<div>
<p>Hello</p>
</div>
last
Gibt das letzte Element eines Arrays oder das letzte Zeichen einer Zeichenkette zurück:
{=[1, 2, 3, 4]|last} {* gibt 4 aus *}
{='abcd'|last} {* gibt 'd' aus *}
length
Gibt die Länge einer Zeichenkette oder eines Arrays zurück.
- für Zeichenketten gibt es die Länge in UTF-8-Zeichen zurück
- für Arrays gibt es die Anzahl der Elemente zurück
- für Objekte, die das Countable-Interface implementieren, verwendet es den Rückgabewert der count()-Methode
- für Objekte, die das IteratorAggregate-Interface implementieren, verwendet es den Rückgabewert der iterator_count()-Funktion
{if ($users|length) > 10}
...
{/if}
localDate (?string $format=null, ?string $date=null, ?string $time=null)
Formatiert Datum und Uhrzeit gemäß den Ländereinstellungen, was eine konsistente und
lokalisierte Darstellung von Zeitangaben in verschiedenen Sprachen und Regionen gewährleistet. Der Filter akzeptiert ein Datum
als UNIX-Timestamp, Zeichenkette oder Objekt vom Typ DateTimeInterface
.
{$date|localDate} {* 15. April 2024 *}
{$date|format: yM} {* 4/2024 *}
{$date|localDate: date: medium} {* 15. 4. 2024 *}
Wenn Sie den Filter ohne Parameter verwenden, wird das Datum auf der Ebene long
ausgegeben, siehe unten.
a) Verwendung des Formats
Der Parameter format
beschreibt, welche Zeitkomponenten angezeigt werden sollen. Es verwendet Buchstabencodes
dafür, deren Wiederholungsanzahl die Breite der Ausgabe beeinflusst:
Jahr | y / yy / yyyy |
2024 / 24 / 2024 |
Monat | M / MM / MMM / MMMM |
8 / 08 / Aug / August |
Tag | d / dd / E / EEEE |
1 / 01 / So / Sonntag |
Stunde | j / H / h |
bevorzugt / 24-Stunden / 12-Stunden |
Minute | m / mm |
5 / 05 (2 Ziffern in Kombination mit Sekunden) |
Sekunde | s / ss |
8 / 08 (2 Ziffern in Kombination mit Minuten) |
Die Reihenfolge der Codes im Format spielt keine Rolle, da die Reihenfolge der Komponenten gemäß den Konventionen der
Ländereinstellungen ausgegeben wird. Das Format ist also unabhängig davon. Zum Beispiel wird das Format yyyyMMMMd
in der Umgebung en_US
als April 15, 2024
ausgegeben, während es in der Umgebung de_DE
als
15. April 2024
ausgegeben wird:
locale: | de-DE | en_US |
---|---|---|
format: 'dMy' |
10.8.2024 | 8/10/2024 |
format: 'yM' |
08/2024 | 8/2024 |
format: 'yyyyMMMM' |
August 2024 | August 2024 |
format: 'MMMM' |
August | August |
format: 'jm' |
17:54 | 5:54 PM |
format: 'Hm' |
17:54 | 17:54 |
format: 'hm' |
5:54 PM | 5:54 PM |
b) Verwendung vordefinierter Stile
Die Parameter date
und time
bestimmen, wie detailliert Datum und Uhrzeit ausgegeben werden sollen.
Sie können aus mehreren Ebenen wählen: full
, long
, medium
, short
. Es ist
möglich, nur das Datum, nur die Uhrzeit oder beides ausgeben zu lassen:
locale: | de-DE | en_US |
---|---|---|
date: short |
23.01.78 | 1/23/78 |
date: medium |
23.01.1978 | Jan 23, 1978 |
date: long |
23. Januar 1978 | January 23, 1978 |
date: full |
Montag, 23. Januar 1978 | Monday, January 23, 1978 |
time: short |
08:30 | 8:30 AM |
time: medium |
08:30:59 | 8:30:59 AM |
time: long |
08:30:59 MEZ | 8:30:59 AM GMT+1 |
date: short, time: short |
23.01.78, 08:30 | 1/23/78, 8:30 AM |
date: medium, time: short |
23.01.1978, 08:30 | Jan 23, 1978, 8:30 AM |
date: long, time: short |
23. Januar 1978 um 08:30 | January 23, 1978 at 8:30 AM |
Für das Datum können Sie außerdem das Präfix relative-
verwenden (z.B. relative-short
), das für
Daten nahe der Gegenwart gestern
, heute
oder morgen
anzeigt, andernfalls wird es auf die
Standardweise ausgegeben.
{$date|localDate: date: relative-short} {* gestern *}
Siehe auch date.
lower
Konvertiert eine Zeichenkette in Kleinbuchstaben. Erfordert die PHP-Erweiterung mbstring
.
{='LATTE'|lower} {* gibt 'latte' aus *}
Siehe auch capitalize, firstUpper, upper.
nocheck
Verhindert die automatische Behandlung einer URL-Adresse. Latte überprüft automatisch, ob die Variable eine Web-URL enthält (d.h. HTTP/HTTPS-Protokoll) und verhindert die Ausgabe von Links, die ein Sicherheitsrisiko darstellen können.
Wenn der Link ein anderes Schema verwendet, z.B. javascript:
oder data:
, und Sie sich seines Inhalts
sicher sind, können Sie die Überprüfung mit |nocheck
deaktivieren.
{var $link = 'javascript:window.close()'}
<a href={$link}>geprüft</a>
<a href={$link|nocheck}>ungeprüft</a>
Gibt aus:
<a href="">geprüft</a>
<a href="javascript:window.close()">ungeprüft</a>
Siehe auch checkUrl.
noescape
Deaktiviert automatisches Escaping.
{var $trustedHtmlString = '<b>hello</b>'}
Escaped: {$trustedHtmlString}
Unescaped: {$trustedHtmlString|noescape}
Gibt aus:
Escaped: <b>hello</b>
Unescaped: <b>hello</b>
Falsche Verwendung des noescape
-Filters kann zu XSS-Schwachstellen führen! Verwenden Sie ihn
niemals, wenn Sie nicht absolut sicher sind, was Sie tun, und dass die ausgegebene Zeichenkette aus einer
vertrauenswürdigen Quelle stammt.
number (int $decimals=0, string
$decPoint='.'
, string $thousandsSep=','
)
Formatiert eine Zahl auf eine bestimmte Anzahl von Dezimalstellen. Wenn Ländereinstellungen gesetzt sind, werden die entsprechenden Dezimal- und Tausendertrennzeichen verwendet.
{1234.20|number} 1,234
{1234.20|number:1} 1,234.2
{1234.20|number:2} 1,234.20
{1234.20|number:2, ',', ' '} 1 234,20
number (string $format)
Der Parameter format
ermöglicht es Ihnen, das Aussehen von Zahlen genau nach Ihren Bedürfnissen zu definieren.
Dafür müssen Ländereinstellungen gesetzt sein. Das Format besteht aus mehreren speziellen
Zeichen, deren vollständige Beschreibung Sie in der Dokumentation DecimalFormat finden:
0
obligatorische Ziffer, wird immer angezeigt, auch wenn es eine Null ist#
optionale Ziffer, wird nur angezeigt, wenn an dieser Stelle tatsächlich eine Zahl steht@
signifikante Ziffer, hilft, eine Zahl mit einer bestimmten Anzahl gültiger Ziffern anzuzeigen.
kennzeichnet, wo das Dezimalkomma (oder -punkt, je nach Land) sein soll,
dient zur Trennung von Zifferngruppen, meist Tausender%
multipliziert die Zahl mit 100 und fügt das Prozentzeichen hinzu
Schauen wir uns einige Beispiele an. Im ersten Beispiel sind zwei Dezimalstellen obligatorisch, im zweiten optional. Das dritte Beispiel zeigt das Auffüllen mit Nullen links und rechts, das vierte zeigt nur existierende Ziffern:
{1234.5|number: '#,##0.00'} {* 1,234.50 *}
{1234.5|number: '#,##0.##'} {* 1,234.5 *}
{1.23 |number: '000.000'} {* 001.230 *}
{1.2 |number: '##.##'} {* 1.2 *}
Signifikante Ziffern bestimmen, wie viele Ziffern unabhängig vom Dezimalpunkt angezeigt werden sollen, wobei gerundet wird:
{1234|number: '@@'} {* 1200 *}
{1234|number: '@@@'} {* 1230 *}
{1234|number: '@@@#'} {* 1234 *}
{1.2345|number: '@@@'} {* 1.23 *}
{0.00123|number: '@@'} {* 0.0012 *}
Ein einfacher Weg, eine Zahl als Prozentsatz anzuzeigen. Die Zahl wird mit 100 multipliziert und das %
-Zeichen
wird hinzugefügt:
{0.1234|number: '#.##%'} {* 12.34% *}
Wir können unterschiedliche Formate für positive und negative Zahlen definieren, getrennt durch ein ;
-Zeichen.
Auf diese Weise können wir zum Beispiel festlegen, dass positive Zahlen mit einem +
-Zeichen angezeigt werden
sollen:
{42|number: '#.##;(#.##)'} {* 42 *}
{-42|number: '#.##;(#.##)'} {* (42) *}
{42|number: '+#.##;-#.##'} {* +42 *}
{-42|number: '+#.##;-#.##'} {* -42 *}
Beachten Sie, dass das tatsächliche Aussehen der Zahlen je nach den Ländereinstellungen variieren kann. In einigen Ländern wird beispielsweise ein Komma statt eines Punkts als Dezimaltrennzeichen verwendet. Dieser Filter berücksichtigt dies automatisch, und Sie müssen sich um nichts kümmern.
padLeft (int $length, string
$pad=' '
)
Füllt eine Zeichenkette auf eine bestimmte Länge mit einer anderen Zeichenkette von links auf.
{='hello'|padLeft: 10, '123'} {* gibt '12312hello' aus *}
padRight (int $length, string
$pad=' '
)
Füllt eine Zeichenkette auf eine bestimmte Länge mit einer anderen Zeichenkette von rechts auf.
{='hello'|padRight: 10, '123'} {* gibt 'hello12312' aus *}
query
Generiert dynamisch einen Query-String in einer URL:
<a href="http://example.com/?{[name: 'John Doe', age: 43]|query}">klicken</a>
<a href="http://example.com/?search={$search|query}">suchen</a>
Gibt aus:
<a href="http://example.com/?name=John+Doe&age=43">klicken</a>
<a href="http://example.com/?search=Foo+Bar">suchen</a>
Schlüssel mit dem Wert null
werden weggelassen.
Siehe auch escapeUrl.
random
Gibt ein zufälliges Element eines Arrays oder ein zufälliges Zeichen einer Zeichenkette zurück:
{=[1, 2, 3, 4]|random} {* gibt z.B.: 3 aus *}
{='abcd'|random} {* gibt z.B.: 'b' aus *}
repeat (int $count)
Wiederholt eine Zeichenkette x-mal.
{='hello'|repeat: 3} {* gibt 'hellohellohello' aus *}
replace (string|array $search, string
$replace=''
)
Ersetzt alle Vorkommen der Suchzeichenkette durch die Ersatzzeichenkette.
{='hello world'|replace: 'world', 'friend'} {* gibt 'hello friend' aus *}
Es können auch mehrere Ersetzungen auf einmal durchgeführt werden:
{='hello world'|replace: [h => l, l => h]} {* gibt 'lehho worhd' aus *}
replaceRE (string $pattern, string
$replace=''
)
Führt eine Suche und Ersetzung mit regulären Ausdrücken durch.
{='hello world'|replaceRE: '/l.*/', 'l'} {* gibt 'hel' aus *}
reverse
Kehrt die gegebene Zeichenkette oder das Array um.
{var $s = 'Nette'}
{$s|reverse} {* gibt 'etteN' aus *}
{var $a = ['N', 'e', 't', 't', 'e']}
{$a|reverse} {* gibt ['e', 't', 't', 'e', 'N'] zurück *}
round (int $precision=0)
Rundet eine Zahl auf die angegebene Genauigkeit.
{=3.4|round} {* gibt 3 aus *}
{=3.5|round} {* gibt 4 aus *}
{=135.79|round:1} {* gibt 135.8 aus *}
{=135.79|round:3} {* gibt 135.79 aus *}
slice (int $start, ?int $length=null, bool $preserveKeys=false)
Extrahiert einen Teil eines Arrays oder einer Zeichenkette.
{='hello'|slice: 1, 2} {* gibt 'el' aus *}
{=['a', 'b', 'c']|slice: 1, 2} {* gibt ['b', 'c'] aus *}
Der Filter funktioniert wie die PHP-Funktion array_slice
für Arrays oder mb_substr
für
Zeichenketten mit Fallback auf die Funktion iconv_substr
im UTF-8-Modus.
Wenn start positiv ist, beginnt die Sequenz um diese Anzahl vom Anfang des Arrays/der Zeichenkette verschoben. Wenn es negativ ist, beginnt die Sequenz um diese Anzahl vom Ende verschoben.
Wenn der Parameter length angegeben und positiv ist, enthält die Sequenz so viele Elemente. Wenn ein negativer length-Parameter an diese Funktion übergeben wird, enthält die Sequenz alle Elemente des ursprünglichen Arrays, beginnend an der Position start und endend an der Position, die um length Elemente vom Ende des Arrays entfernt ist. Wenn Sie diesen Parameter weglassen, enthält die Sequenz alle Elemente des ursprünglichen Arrays, beginnend an der Position start.
Standardmäßig ändert der Filter die Reihenfolge und setzt die ganzzahligen Schlüssel des Arrays zurück. Dieses Verhalten kann geändert werden, indem preserveKeys auf true gesetzt wird. String-Schlüssel werden immer beibehalten, unabhängig von diesem Parameter.
sort (?Closure $comparison, string|int|\Closure|null $by=null, string|int|\Closure|bool $byKey=false)
Der Filter sortiert die Elemente eines Arrays oder Iterators und behält ihre assoziativen Schlüssel bei. Bei gesetzten Ländereinstellungen folgt die Sortierung deren Regeln, wenn keine eigene Vergleichsfunktion angegeben ist.
{foreach ($names|sort) as $name}
...
{/foreach}
Sortiertes Array in umgekehrter Reihenfolge:
{foreach ($names|sort|reverse) as $name}
...
{/foreach}
Sie können eine eigene Vergleichsfunktion für die Sortierung angeben (das Beispiel zeigt, wie die Sortierung von größter zu kleinster umgekehrt wird):
{var $reverted = ($names|sort: fn($a, $b) => $b <=> $a)}
Der Filter |sort
ermöglicht auch die Sortierung von Elementen nach Schlüsseln:
{foreach ($names|sort: byKey: true) as $name}
...
{/foreach}
Wenn Sie eine Tabelle nach einer bestimmten Spalte sortieren müssen, können Sie den Parameter by
verwenden. Der
Wert 'name'
im Beispiel gibt an, dass nach $item->name
oder $item['name']
sortiert wird,
je nachdem, ob $item
ein Array oder ein Objekt ist:
{foreach ($items|sort: by: 'name') as $item}
{$item->name}
{/foreach}
Sie können auch eine Callback-Funktion definieren, die den Wert bestimmt, nach dem sortiert werden soll:
{foreach ($items|sort: by: fn($items) => $items->category->name) as $item}
{$item->name}
{/foreach}
Der Parameter byKey
kann auf die gleiche Weise verwendet werden.
spaceless
Entfernt überflüssige Leerzeichen aus der Ausgabe. Sie können auch den Alias strip
verwenden.
{block |spaceless}
<ul>
<li>Hello</li>
</ul>
{/block}
Gibt aus:
<ul> <li>Hello</li> </ul>
stripHtml
Konvertiert HTML in reinen Text. Das heißt, es entfernt HTML-Tags und konvertiert HTML-Entities in Text.
{='<p>one < two</p>'|stripHtml} {* gibt 'one < two' aus *}
Der resultierende reine Text kann natürlich Zeichen enthalten, die HTML-Tags darstellen, zum Beispiel wird
'<p>'|stripHtml
zu <p>
konvertiert. Geben Sie den so erzeugten Text auf keinen Fall
mit |noescape
aus, da dies zu einer Sicherheitslücke führen kann.
substr (int $offset, ?int $length=null)
Extrahiert einen Teil einer Zeichenkette. Dieser Filter wurde durch den Filter slice ersetzt.
{$string|substr: 1, 2}
translate (string $message, …$args)
Übersetzt Ausdrücke in andere Sprachen. Damit der Filter verfügbar ist, muss ein Übersetzer eingerichtet sein. Sie können auch Tags für Übersetzungen verwenden.
<a href="basket">{='Cart'|translate}</a>
<span>{$item|translate}</span>
trim (string
$charlist=" \t\n\r\0\x0B\u{A0}"
)
Entfernt Leerzeichen (oder andere Zeichen) vom Anfang und Ende einer Zeichenkette.
{=' I like Latte. '|trim} {* gibt 'I like Latte.' aus *}
{=' I like Latte.'|trim: '.'} {* gibt ' I like Latte' aus *}
truncate (int $length, string
$append='…'
)
Kürzt eine Zeichenkette auf die angegebene maximale Länge, wobei versucht wird, ganze Wörter zu erhalten. Wenn die Zeichenkette gekürzt wird, wird am Ende ein Auslassungszeichen hinzugefügt (kann mit dem zweiten Parameter geändert werden).
{var $title = 'Hello, how are you?'}
{$title|truncate:5} {* Hell… *}
{$title|truncate:17} {* Hello, how are… *}
{$title|truncate:30} {* Hello, how are you? *}
upper
Konvertiert eine Zeichenkette in Großbuchstaben. Erfordert die PHP-Erweiterung mbstring
.
{='latte'|upper} {* gibt 'LATTE' aus *}
Siehe auch capitalize, firstUpper, lower.
webalize
Konvertiert eine UTF-8-Zeichenkette in die in URLs verwendete Form.
Es wird in ASCII konvertiert. Konvertiert Leerzeichen in Bindestriche. Entfernt Zeichen, die nicht alphanumerisch, Unterstriche oder Bindestriche sind. Konvertiert in Kleinbuchstaben. Entfernt auch führende und abschließende Leerzeichen.
{var $s = 'Unser 10. Produkt'}
{$s|webalize} {* gibt 'unser-10-produkt' aus *}
Erfordert die Bibliothek nette/utils.