Výchozí helpery šablon
V šablonách můžeme používat funkce, které pomáhají upravit nebo přeformátovat data do výsledné podoby. Říkáme jim helpery. Tohle je přehled helperů, které jsou standardně k dispozici.
Všechny výchozí helpery jsou určeny pro řetězce v kódování UTF-8.
| Modifikace řetězců | |
|---|---|
truncate (length, append =
'…') |
zkrátí délku se zachováním slov |
substr (offset [, length]) |
vrátí část řetězce |
trim (charset = mezery) |
odstraní počáteční a koncové mezery či jiné znaky |
striptags |
odstraní HTML značky |
strip |
odstraní bílé místo |
webalize (charlist = '…', lower =
TRUE) |
vrací tvar používaný v cool URL |
toAscii |
odstraní diakritiku |
indent (level = 1, char = "\t") |
odsadí text zleva o daný počet tabulátorů |
replace (search, replace = '') |
zamění výskyty hledaného řetězce |
replaceRE (pattern, replace =
'') |
zamění výskyty dle regulárního výrazu |
padLeft (length, pad = ' ') |
doplní řetězec zleva na požadovanou délku |
padRight (length, pad = ' ') |
doplní řetězec zprava na požadovanou délku |
repeat (count) |
opakování řetězce |
implode (glue = '') |
spojí pole do řetězce |
nl2br |
odřádkuje značkou <br> |
| Velikost písmen | |
lower |
převede na malá písmenka |
upper |
převede na velká písmenka |
firstUpper |
převede první písmenko na velké |
capitalize |
malá písmena, první písmeno ve slova velké |
| Formátování hodnot | |
date (format) |
formátuje datum |
number (decimals = 0, decPoint =
'.') |
formátuje číslo |
bytes (precision = 2) |
formátuje velikost v bajtech |
| Ostatní | |
dataStream (mimetype = detect) |
konverze pro Data URI protokol |
url |
escapuje parametr v URL |
length |
vrací délku řetězce ve znacích |
null |
spolkne vstup a nic nevrací |
Truncate
Ořízne řetězec na uvedenou maximální délku, přičemž se snaží zachovávat celá slova. Pokud dojde ke zkrácení řetězce, přidá nakonec trojtečku (lze změnit druhým parametrem).
{var $title = 'Řekněte, jak se máte?'}
{$title|truncate:5} Řekn…
{$title|truncate:20} Řekněte, jak se…
{$title|truncate:30} Řekněte, jak se máte?
Strip
Odstraní zbytečné bílé místo (mezery) z výstupu.
{block |strip}
<ul>
<li>Hello</li>
</ul>
{/block}
Vygeneruje
<ul> <li>Hello</li> </ul>
Webalize
Upraví řetězec do tvaru používaného v URL, tj. odstraní diakritiku a všechny znaky kromě písmen anglické abecedy a číslic nahradí spojovníkem.
{var $name = 'náš produkt'}
{$name|webalize} nas-produkt
Indent
Odsadí text zleva o daný počet tabulátorů nebo jiných znaků, které můžeme uvést ve druhém argumentu:
<div>
{block |indent}
<p>Hello</p>
{/block}
</div>
Vygeneruje
<div>
<p>Hello</p>
</div>
Velikost písmen
{var $s = 'dobrý DEN'}
{$s|lower} dobrý den
{$s|upper} DOBRÝ DEN
{$s|firstUpper} Dobrý DEN
{$s|capitalize} Dobrý Den
Date
Formátuje datum podle masky buď ve tvaru používaném PHP funkcí strftime nebo date. Helper přijímá datum buď ve formátu
UNIX timestamp, v podobě řetězce nebo jako objekt DateTime.
{$today|date:'%d.%m.%Y'}
{$today|date:'j. n. Y'}
Number
Formátuje číslo na určitý počet desetinných míst. Lze určit znak pro desetinnou čárku a oddělovač tisíců.
{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
Bytes
Formátuje velikost v bajtech do lidsky čitelné podoby.
{$size|bytes} 0 B, 10 B nebo 1.25 GB, …
DataStream
Konvertuje do data URI scheme. Pomocí něj lze do HTML nebo CSS vkládat obrázky bez nutnosti linkovat externí soubory. Podporují jej všechny moderní prohlížeče a Internet Explorer od verze 8.
Mějme v proměnné obrázek $img =
Image::fromFile('obrazek.gif'), poté
<img src="{$img|dataStream}">
Vygeneruje například:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==">
Url
Escapuje proměnnou pro použítí jakožto parametru v URL.
<a href="http://example.com/{$name|url}">{$name}</a>
Komentáře 
gawan | 18. 7. 2011, 18:15 | comment
asi by bolo dobré pridať sem linku ako vytvoriť vlastný helper.
Tomáš Čepička | 5. 1. 2012, 10:47 | comment
K helperu Date by se hodilo doplnit, že se nechová stejně jako klasiká funkce date(), pokud mu dáme jako timestamp záporné číslo.

David Grudl | 18. 6. 2011, 13:17 | comment
Honzo, snažil jsem se u výchozích hodnot mezery důsledně nepoužívat, viz třeba http://doc.nette.org/cs/strings#…. Řekl bych, že čitelnější je právě ta varianta bez mezer.