Filtry Latte

W szablonach możemy używać funkcji, które pomagają modyfikować lub przeformatować dane do ostatecznej postaci. Nazywamy je filtrami.

Transformacje
batch wyświetlanie danych liniowych w tabeli
breakLines Dodaje podziały wierszy HTML przed końcami linii
bytes formatuje rozmiar w bajtach
clamp ogranicza wartość do danego zakresu
dataStream konwersja dla protokołu Data URI
date formatuje datę i czas
explode dzieli ciąg znaków na tablicę według separatora
first zwraca pierwszy element tablicy lub znak ciągu
group grupuje dane według różnych kryteriów
implode łączy tablicę w ciąg znaków
indent wcięcie tekstu od lewej o podaną liczbę tabulatorów
join łączy tablicę w ciąg znaków
last zwraca ostatni element tablicy lub znak ciągu
length zwraca długość ciągu w znakach lub tablicy
localDate formatuje datę i czas zgodnie z ustawieniami regionalnymi
number formatuje liczbę
padLeft uzupełnia ciąg znaków od lewej do wymaganej długości
padRight uzupełnia ciąg znaków od prawej do wymaganej długości
random zwraca losowy element tablicy lub znak ciągu
repeat powtarzanie ciągu znaków
replace zastępuje wystąpienia szukanego ciągu
replaceRE zastępuje wystąpienia zgodnie z wyrażeniem regularnym
reverse odwraca ciąg UTF-8 lub tablicę
slice wyodrębnia część tablicy lub ciągu
sort sortuje tablicę
spaceless usuwa białe znaki, podobnie jak znacznik spaceless tag
split dzieli ciąg znaków na tablicę według separatora
strip usuwa białe znaki
stripHtml usuwa znaczniki HTML i konwertuje encje HTML na znaki
substr zwraca część ciągu
trim usuwa początkowe i końcowe spacje lub inne znaki
translate tłumaczenie na inne języki
truncate skraca długość z zachowaniem słów
webalize dostosowuje ciąg UTF-8 do formatu używanego w adresach URL
Wielkość liter
capitalize małe litery, pierwsza litera w słowach wielka
firstUpper konwertuje pierwszą literę na wielką
lower konwertuje na małe litery
upper konwertuje na wielkie litery
Zaokrąglanie
ceil zaokrągla liczbę w górę do podanej precyzji
floor zaokrągla liczbę w dół do podanej precyzji
round zaokrągla liczbę do podanej precyzji
Escapowanie
escapeUrl escapuje parametr w URL
noescape wyświetla zmienną bez escapowania
query generuje query string w URL

Ponadto istnieją filtry escapujące dla HTML (escapeHtml i escapeHtmlComment), XML (escapeXml), JavaScript (escapeJs), CSS (escapeCss) i iCalendar (escapeICal), których Latte używa samo dzięki escapowaniu kontekstowemu i nie trzeba ich zapisywać.

Bezpieczeństwo
checkUrl oczyszcza adres URL z niebezpiecznych danych wejściowych
nocheck zapobiega automatycznemu czyszczeniu adresu URL

Atrybuty Latte src i href sprawdza automatycznie, więc filtra checkUrl prawie nie trzeba używać.

Wszystkie domyślne filtry są przeznaczone dla ciągów znaków w kodowaniu UTF‑8.

Użycie

Filtry zapisuje się za pionową kreską (może być przed nią spacja):

<h1>{$heading|upper}</h1>

Filtry (w starszych wersjach helpery) można łączyć w łańcuchy, a następnie są stosowane w kolejności od lewej do prawej:

<h1>{$heading|lower|capitalize}</h1>

Parametry podaje się za nazwą filtra, oddzielone dwukropkami lub przecinkami:

<h1>{$heading|truncate:20,''}</h1>

Filtry można stosować również do wyrażeń:

{var $name = ($title|upper) . ($subtitle|lower)}</h1>

Filtry niestandardowe można rejestrować w ten sposób:

$latte = new Latte\Engine;
$latte->addFilter('shortify', fn(string $s, int $len = 10) => mb_substr($s, 0, $len));

W szablonie wywołuje się je w następujący sposób:

<p>{$text|shortify}</p>
<p>{$text|shortify:100}</p>

Filtry

batch (int $length, mixed $item)array

Filtr, który upraszcza wyświetlanie danych liniowych w postaci tabeli. Zwraca tablicę tablic o podanej liczbie elementów. Jeśli podasz drugi parametr, zostanie on użyty do uzupełnienia brakujących elementów w ostatnim wierszu.

{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>

Wyświetli:

<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>

Zobacz także group i znacznik iterateWhile.

breakLines

Dodaje przed każdym znakiem nowego wiersza znacznik HTML <br>

{var $s = "Text & with \n newline"}
{$s|breakLines}    {* wyświetla "Text &amp; with <br>\n newline" *}

bytes (int $precision=2)

Formatuje rozmiar w bajtach do postaci czytelnej dla człowieka. Jeśli ustawione są ustawienia regionalne, używane są odpowiednie separatory dziesiętne i tysięcy.

{$size|bytes}     0 B, 1.25 GB, …
{$size|bytes:0}   10 B, 1 GB, …

ceil (int $precision=0)

Zaokrągla liczbę w górę do podanej precyzji.

{=3.4|ceil}         {* wyświetla 4      *}
{=135.22|ceil:1}    {* wyświetla 135.3  *}
{=135.22|ceil:3}    {* wyświetla 135.22 *}

Zobacz także floor, round.

capitalize

Słowa będą zaczynać się wielkimi literami, wszystkie pozostałe znaki będą małe. Wymaga rozszerzenia PHP mbstring.

{='i like LATTE'|capitalize}  {* wyświetla 'I Like Latte' *}

Zobacz także firstUpper, lower, upper.

checkUrl

Wymusza oczyszczenie adresu URL. Sprawdza, czy zmienna zawiera adres URL (tj. protokół HTTP/HTTPS) i zapobiega wyświetlaniu linków, które mogą stanowić zagrożenie bezpieczeństwa.

{var $link = 'javascript:window.close()'}
<a data-href={$link|checkUrl}>kontrolowane</a>
<a data-href={$link}>niekontrolowane</a>

Wyświetli:

<a data-href="">kontrolowane</a>
<a data-href="javascript:window.close()">niekontrolowane</a>

Zobacz także nocheck.

clamp (int|float $min, int|float $max)

Ogranicza wartość do podanego zakresu włącznie min i max.

{$level|clamp: 0, 255}

Istnieje również jako funkcja.

dataStream (string $mimetype=detect)

Konwertuje zawartość do schematu data URI. Za jego pomocą można wstawiać obrazy do HTML lub CSS bez konieczności linkowania zewnętrznych plików.

Miejmy w zmiennej obrazek $img = Image::fromFile('obrazek.gif'), wtedy

<img src={$img|dataStream}>

Wyświetli na przykład:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==">

Wymaga rozszerzenia PHP fileinfo.

date (string $format)

Formatuje datę i czas zgodnie z maską używaną przez funkcję PHP date. Filtr przyjmuje datę w formacie UNIX timestamp, jako ciąg znaków lub obiekt typu DateTimeInterface.

{$today|date:'j. n. Y'}

Zobacz także localDate.

escapeUrl

Escapuje zmienną do użycia jako parametr w URL.

<a href="http://example.com/{$name|escapeUrl}">{$name}</a>

Zobacz także query.

explode (string $separator='')

Dzieli ciąg znaków na tablicę według separatora. Alias dla split.

{='one,two,three'|explode:','}    {* zwraca ['one', 'two', 'three'] *}

Jeśli separator jest pustym ciągiem (wartość domyślna), wejście zostanie podzielone na poszczególne znaki:

{='123'|explode}                  {* zwraca ['1', '2', '3'] *}

Możesz także użyć aliasu split:

{='1,2,3'|split:','}              {* zwraca ['1', '2', '3'] *}

Zobacz także implode.

first

Zwraca pierwszy element tablicy lub znak ciągu:

{=[1, 2, 3, 4]|first}    {* wyświetla 1 *}
{='abcd'|first}          {* wyświetla 'a' *}

Zobacz także last, random.

floor (int $precision=0)

Zaokrągla liczbę w dół do podanej precyzji.

{=3.5|floor}        {* wyświetla 3      *}
{=135.79|floor:1}   {* wyświetla 135.7  *}
{=135.79|floor:3}   {* wyświetla 135.79 *}

Zobacz także ceil, round.

firstUpper

Konwertuje pierwszą literę na wielką. Wymaga rozszerzenia PHP mbstring.

{='the latte'|firstUpper}  {* wyświetla 'The latte' *}

Zobacz także capitalize, lower, upper.

group (string|int|\Closure $by)array

Filtr grupuje dane według różnych kryteriów.

W tym przykładzie wiersze w tabeli są grupowane według kolumny categoryId. Wyjściem jest tablica tablic, gdzie kluczem jest wartość w kolumnie categoryId. Przeczytaj szczegółowy przewodnik.

{foreach ($items|group: categoryId) as $categoryId => $categoryItems}
    <ul>
        {foreach $categoryItems as $item}
            <li>{$item->name}</li>
        {/foreach}
    </ul>
{/foreach}

Zobacz także batch, funkcja group i znacznik iterateWhile.

implode (string $glue='')

Zwraca ciąg znaków, który jest połączeniem elementów sekwencji. Alias dla join.

{=[1, 2, 3]|implode}      {* wyświetla '123' *}
{=[1, 2, 3]|implode:'|'}  {* wyświetla '1|2|3' *}

Możesz także użyć aliasu join:

{=[1, 2, 3]|join}         {* wyświetla '123' *}

indent (int $level=1, string $char="\t")

Wcięcie tekstu od lewej o podaną liczbę tabulatorów lub innych znaków, które można podać w drugim argumencie. Puste wiersze nie są wcięte.

<div>
{block |indent}
<p>Hello</p>
{/block}
</div>

Wyświetli:

<div>
	<p>Hello</p>
</div>

last

Zwraca ostatni element tablicy lub znak ciągu:

{=[1, 2, 3, 4]|last}    {* wyświetla 4 *}
{='abcd'|last}          {* wyświetla 'd' *}

Zobacz także first, random.

length

Zwraca długość ciągu lub tablicy.

  • dla ciągów zwraca długość w znakach UTF‑8
  • dla tablic zwraca liczbę elementów
  • dla obiektów implementujących interfejs Countable, używa wartości zwracanej przez metodę count()
  • dla obiektów implementujących interfejs IteratorAggregate, używa wartości zwracanej przez funkcję iterator_count()
{if ($users|length) > 10}
	...
{/if}

localDate (?string $format=null, ?string $date=null, ?string $time=null)

Formatuje datę i czas zgodnie z ustawieniami regionalnymi, co zapewnia spójne i zlokalizowane wyświetlanie danych czasowych w różnych językach i regionach. Filtr przyjmuje datę jako UNIX timestamp, ciąg znaków lub obiekt typu DateTimeInterface.

{$date|localDate}                  {* 15 kwietnia 2024 *}
{$date|format: yM}                 {* 4/2024 *}
{$date|localDate: date: medium}    {* 15.04.2024 *}

Jeśli użyjesz filtra bez parametrów, data zostanie wyświetlona na poziomie long, zobacz dalej.

a) użycie formatu

Parametr format opisuje, które składniki czasu mają być wyświetlone. Używa do tego kodów literowych, których liczba powtórzeń wpływa na szerokość wyjścia:

rok y / yy / yyyy 2024 / 24 / 2024
miesiąc M / MM / MMMMMMM 8 / 08 / siesierpień
dzień d / dd / EEEEE 1 / 01 / niedz.niedziela
godzina j / H / h preferowany / 24-godzinny / 12-godzinny
minuta m / mm 5 / 05 (2 cyfry w połączeniu z sekundami)
sekunda s / ss 8 / 08 (2 cyfry w połączeniu z minutami)

Kolejność kodów w formacie nie ma znaczenia, ponieważ kolejność składników jest wyświetlana zgodnie ze zwyczajami ustawień regionalnych. Format jest więc od nich niezależny. Na przykład format yyyyMMMMd w środowisku en_US wyświetli April 15, 2024, podczas gdy w środowisku pl_PL wyświetli 15 kwietnia 2024:

locale: pl_PL en_US
format: 'dMy' 10.08.2024 8/10/2024
format: 'yM' 8/2024 8/2024
format: 'yyyyMMMM' sierpień 2024 August 2024
format: 'MMMM' sierpień August
format: 'jm' 17:22 5:22 PM
format: 'Hm' 17:22 17:22
format: 'hm' 5:22 PM 5:22 PM

b) użycie predefiniowanych stylów

Parametry date i time określają, jak szczegółowo ma być wyświetlana data i czas. Możesz wybrać spośród kilku poziomów: full, long, medium, short. Można wyświetlić tylko datę, tylko czas lub oba:

locale: pl_PL en_US
date: short 23.01.78 1/23/78
date: medium 23.01.1978 Jan 23, 1978
date: long 23 stycznia 1978 January 23, 1978
date: full poniedziałek, 23 stycznia 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 CET 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 stycznia 1978 o 08:30 January 23, 1978 at 8:30 AM

Dla daty można dodatkowo użyć prefiksu relative- (np. relative-short), który dla dat bliskich teraźniejszości wyświetli wczoraj, dzisiaj lub jutro, w przeciwnym razie zostanie wyświetlony w standardowy sposób.

{$date|localDate: date: relative-short}    {* wczoraj *}

Zobacz także date.

lower

Konwertuje ciąg znaków na małe litery. Wymaga rozszerzenia PHP mbstring.

{='LATTE'|lower}   {* wyświetla 'latte' *}

Zobacz także capitalize, firstUpper, upper.

nocheck

Zapobiega automatycznemu oczyszczaniu adresu URL. Latte automatycznie sprawdza, czy zmienna zawiera adres URL (tj. protokół HTTP/HTTPS) i zapobiega wyświetlaniu linków, które mogą stanowić zagrożenie bezpieczeństwa.

Jeśli link używa innego schematu, np. javascript: lub data:, i jesteś pewien jego zawartości, możesz wyłączyć kontrolę za pomocą |nocheck.

{var $link = 'javascript:window.close()'}

<a href={$link}>kontrolowane</a>
<a href={$link|nocheck}>niekontrolowane</a>

Wyświetli:

<a href="">kontrolowane</a>
<a href="javascript:window.close()">niekontrolowane</a>

Zobacz także checkUrl.

noescape

Wyłącza automatyczne escapowanie.

{var $trustedHtmlString = '<b>hello</b>'}
Escapowany: {$trustedHtmlString}
Neescapowany: {$trustedHtmlString|noescape}

Wyświetli:

Escapowany: &lt;b&gt;hello&lt;/b&gt;
Neescapowany: <b>hello</b>

Nieprawidłowe użycie filtra noescape może prowadzić do powstania podatności XSS! Nigdy go nie używaj, jeśli nie jesteś całkowicie pewien, co robisz, i że wyświetlany ciąg pochodzi z zaufanego źródła.

number (int $decimals=0, string $decPoint='.', string $thousandsSep=',')

Formatuje liczbę do określonej liczby miejsc dziesiętnych. Jeśli ustawione są ustawienia regionalne, używane są odpowiednie separatory dziesiętne i tysięcy.

{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)

Parametr format pozwala zdefiniować wygląd liczb dokładnie według Twoich potrzeb. Do tego potrzebne jest ustawienie ustawień regionalnych. Format składa się z kilku specjalnych znaków, których pełny opis znajdziesz w dokumentacji DecimalFormat:

  • 0 obowiązkowa cyfra, zawsze się wyświetli, nawet jeśli to zero
  • # opcjonalna cyfra, wyświetli się tylko wtedy, gdy na tym miejscu liczba rzeczywiście jest
  • @ cyfra znacząca, pomaga wyświetlić liczbę z określoną liczbą cyfr znaczących
  • . oznacza, gdzie ma być przecinek dziesiętny (lub kropka, w zależności od kraju)
  • , służy do oddzielania grup cyfr, najczęściej tysięcy
  • % mnoży liczbę przez 100× i dodaje znak procenta

Spójrzmy na przykłady. W pierwszym przykładzie dwa miejsca dziesiętne są obowiązkowe, w drugim opcjonalne. Trzeci przykład pokazuje uzupełnienie zerami z lewej i prawej strony, czwarty wyświetla tylko istniejące cyfry:

{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 *}

Cyfry znaczące określają, ile cyfr, niezależnie od przecinka dziesiętnego, ma być wyświetlonych, przy czym następuje zaokrąglenie:

{1234|number: '@@'}             {* 1200 *}
{1234|number: '@@@'}            {* 1230 *}
{1234|number: '@@@#'}           {* 1234 *}
{1.2345|number: '@@@'}          {* 1.23 *}
{0.00123|number: '@@'}          {* 0.0012 *}

Łatwy sposób na wyświetlenie liczby jako procentów. Liczba jest mnożona przez 100× i dodawany jest znak %:

{0.1234|number: '#.##%'}        {* 12.34% *}

Możemy zdefiniować odrębny format dla liczb dodatnich i ujemnych, oddziela je znak ;. W ten sposób można na przykład ustawić, że liczby dodatnie mają być wyświetlane ze znakiem +:

{42|number: '#.##;(#.##)'}      {* 42 *}
{-42|number: '#.##;(#.##)'}     {* (42) *}
{42|number: '+#.##;-#.##'}      {* +42 *}
{-42|number: '+#.##;-#.##'}     {* -42 *}

Pamiętaj, że rzeczywisty wygląd liczb może się różnić w zależności od ustawień kraju. Na przykład w niektórych krajach używa się przecinka zamiast kropki jako separatora miejsc dziesiętnych. Ten filtr automatycznie to uwzględni i nie musisz się o nic martwić.

padLeft (int $length, string $pad=' ')

Uzupełnia ciąg znaków do określonej długości innym ciągiem z lewej strony.

{='hello'|padLeft: 10, '123'}  {* wyświetla '12312hello' *}

padRight (int $length, string $pad=' ')

Uzupełnia ciąg znaków do określonej długości innym ciągiem z prawej strony.

{='hello'|padRight: 10, '123'}  {* wyświetla 'hello12312' *}

query

Dynamicznie generuje query string w URL:

<a href="http://example.com/?{[name: 'John Doe', age: 43]|query}">click</a>
<a href="http://example.com/?search={$search|query}">search</a>

Wyświetli:

<a href="http://example.com/?name=John+Doe&amp;age=43">click</a>
<a href="http://example.com/?search=Foo+Bar">search</a>

Klucze o wartości null są pomijane.

Zobacz także escapeUrl.

random

Zwraca losowy element tablicy lub znak ciągu:

{=[1, 2, 3, 4]|random}    {* wyświetla np.: 3 *}
{='abcd'|random}          {* wyświetla np.: 'b' *}

Zobacz także first, last.

repeat (int $count)

Powtarza ciąg znaków x razy.

{='hello'|repeat: 3}  {* wyświetla 'hellohellohello' *}

replace (string|array $search, string $replace='')

Zastępuje wszystkie wystąpienia szukanego ciągu ciągiem zastępującym.

{='hello world'|replace: 'world', 'friend'}  {* wyświetla 'hello friend' *}

Można wykonać wiele zamian jednocześnie:

{='hello world'|replace: [h => l, l => h]}  {* wyświetla 'lehho worhd' *}

replaceRE (string $pattern, string $replace='')

Wykonuje wyszukiwanie wyrażeń regularnych z zastępowaniem.

{='hello world'|replaceRE: '/l.*/', 'l'}  {* wyświetla 'hel' *}

reverse

Odwraca podany ciąg znaków lub tablicę.

{var $s = 'Nette'}
{$s|reverse}    {* wyświetla 'etteN' *}
{var $a = ['N', 'e', 't', 't', 'e']}
{$a|reverse}    {* returns ['e', 't', 't', 'e', 'N'] *}

round (int $precision=0)

Zaokrągla liczbę do podanej precyzji.

{=3.4|round}        {* wyświetla 3      *}
{=3.5|round}        {* wyświetla 4      *}
{=135.79|round:1}   {* wyświetla 135.8  *}
{=135.79|round:3}   {* wyświetla 135.79 *}

Zobacz także ceil, floor.

slice (int $start, ?int $length=null, bool $preserveKeys=false)

Wyodrębnia część tablicy lub ciągu.

{='hello'|slice: 1, 2}           {* wyświetla 'el' *}
{=['a', 'b', 'c']|slice: 1, 2}   {* wyświetla ['b', 'c'] *}

Filtr działa jak funkcja PHP array_slice dla tablic lub mb_substr dla ciągów z fallbackiem na funkcję iconv_substr w trybie UTF‑8.

Jeśli start jest dodatni, sekwencja zacznie się przesunięta o tę liczbę od początku tablicy/ciągu. Jeśli jest ujemny, sekwencja zacznie się przesunięta o tyle od końca.

Jeśli podany jest parametr length i jest dodatni, sekwencja będzie zawierać tyle elementów. Jeśli do tej funkcji zostanie przekazany ujemny parametr length, sekwencja będzie zawierać wszystkie elementy oryginalnej tablicy, zaczynając od pozycji start i kończąc na pozycji mniejszej o length elementów od końca tablicy. Jeśli ten parametr nie zostanie podany, sekwencja będzie zawierać wszystkie elementy oryginalnej tablicy, zaczynając od pozycji start.

Domyślnie filtr zmienia kolejność i resetuje klucze całkowite tablicy. To zachowanie można zmienić, ustawiając preserveKeys na true. Klucze ciągów są zawsze zachowywane, niezależnie od tego parametru.

sort (?Closure $comparison, string|int|\Closure|null $by=null, string|int|\Closure|bool $byKey=false)

Filtr sortuje elementy tablicy lub iteratora i zachowuje ich klucze asocjacyjne. Przy ustawionych ustawieniach regionalnych sortowanie odbywa się zgodnie z ich zasadami, chyba że określono własną funkcję porównującą.

{foreach ($names|sort) as $name}
	...
{/foreach}

Sortowana tablica w odwrotnej kolejności:

{foreach ($names|sort|reverse) as $name}
	...
{/foreach}

Możesz określić własną funkcję porównującą do sortowania (przykład pokazuje, jak odwrócić sortowanie od największego do najmniejszego):

{var $reverted = ($names|sort: fn($a, $b) => $b <=> $a)}

Filtr |sort pozwala również sortować elementy według kluczy:

{foreach ($names|sort: byKey: true) as $name}
	...
{/foreach}

Jeśli potrzebujesz posortować tabelę według określonej kolumny, możesz użyć parametru by. Wartość 'name' w przykładzie określa, że sortowanie będzie odbywać się według $item->name lub $item['name'], w zależności od tego, czy $item jest tablicą czy obiektem:

{foreach ($items|sort: by: 'name') as $item}
	{$item->name}
{/foreach}

Możesz również zdefiniować funkcję callback, która określi wartość, według której ma się odbywać sortowanie:

{foreach ($items|sort: by: fn($items) => $items->category->name) as $item}
	{$item->name}
{/foreach}

W ten sam sposób można wykorzystać parametr byKey.

spaceless

Usuwa zbędne białe znaki (spacje) z wyjścia. Możesz także użyć aliasu strip.

{block |spaceless}
	<ul>
		<li>Hello</li>
	</ul>
{/block}

Wyświetli:

<ul> <li>Hello</li> </ul>

stripHtml

Konwertuje HTML na czysty tekst. Czyli usuwa z niego znaczniki HTML i konwertuje encje HTML na tekst.

{='<p>one &lt; two</p>'|stripHtml}  {* wyświetla 'one < two' *}

Wynikowy czysty tekst może naturalnie zawierać znaki, które reprezentują znaczniki HTML, na przykład '&lt;p&gt;'|stripHtml zostanie przekonwertowane na <p>. W żadnym wypadku nie wyświetlaj tak powstałego tekstu z |noescape, ponieważ może to prowadzić do powstania luki bezpieczeństwa.

substr (int $offset, ?int $length=null)

Wyodrębnia część ciągu. Ten filtr został zastąpiony filtrem slice.

{$string|substr: 1, 2}

translate (…$args)

Tłumaczy wyrażenia na inne języki. Aby filtr był dostępny, należy ustawić translator. Możesz także użyć znaczników do tłumaczenia.

<a href="basket">{='Košík'|translate}</a>
<span>{$item|translate}</span>

trim (string $charlist=" \t\n\r\0\x0B\u{A0}")

Usuwa białe znaki (lub inne znaki) z początku i końca ciągu.

{='  I like Latte.  '|trim}    {* wyświetla 'I like Latte.' *}
{='  I like Latte.'|trim: '.'} {* wyświetla '  I like Latte' *}

truncate (int $length, string $append='…')

Obcina ciąg znaków do podanej maksymalnej długości, starając się zachować całe słowa. Jeśli ciąg zostanie skrócony, na końcu dodaje wielokropek (można to zmienić drugim parametrem).

{var $title = 'Hello, how are you?'}
{$title|truncate:5}  {* Hell…                *}
{$title|truncate:17} {* Hello, how are…      *}
{$title|truncate:30} {* Hello, how are you?  *}

upper

Konwertuje ciąg znaków na wielkie litery. Wymaga rozszerzenia PHP mbstring.

{='latte'|upper}  {* wyświetla 'LATTE' *}

Zobacz także capitalize, firstUpper, lower.

webalize

Dostosowuje ciąg UTF‑8 do formatu używanego w adresach URL.

Konwertuje na ASCII. Konwertuje spacje na myślniki. Usuwa znaki, które nie są alfanumeryczne, podkreśleniami ani myślnikami. Konwertuje na małe litery. Usuwa również początkowe i końcowe spacje.

{var $s = 'Náš 10. produkt'}
{$s|webalize}   {* wyświetla 'nas-10-produkt' *}

Wymaga biblioteki nette/utils.

wersja: 3.0