You are browsing the unmaintained documentation for old Nette 2.1. See documentation for current Nette.

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.

Obsluhu provádí třída Nette\Templating\Helpers.

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 slovech 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í
noescape vypíše proměnnou bez escapování
dataStream (mimetype = detect) konverze pro Data URI protokol
url nebo escapeurl escapuje parametr v URL
length vrací délku řetězce ve znacích
null spolkne vstup a nic nevrací
{$a ?: $default} vypíše $a pokud není prázdné, jinak vypíše $default

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>

nebo

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