Latte funkce
V šablonách můžeme kromě běžných PHP funkcí používat i tyto další.
Použití
Funkce se používají strejně jaké běžné PHP funkce a lze je použít ve všechn výrazech:
<p>{clamp($num, 1, 100)}</p>
{if odd($num)} ... {/if}
Vlastní funkce lze registrovat tímto způsobem:
$latte = new Latte\Engine;
$latte->addFunction('shortify', fn(string $s, int $len = 10) => mb_substr($s, 0, $len));
V šabloně se potom volá takto:
<p>{shortify($text)}</p>
<p>{shortify($text, 100)}</p>
Funkce
clamp(int|float $value, int|float $min, int|float $max): int|float
Ohraničí hodnotu do daného inkluzivního rozsahu min a max.
{=clamp($level, 0, 255)}
Viz také filtr clamp.
divisibleBy(int $value, int $by): bool
Zkontroluje, zda je proměnná dělitelná číslem.
{if divisibleBy($num, 5)} ... {/if}
even(int $value): bool
Zkontroluje, zda je dané číslo sudé.
{if even($num)} ... {/if}
first(string|array $value): mixed
Vrací první prvek pole nebo znak řetězce:
{=first([1, 2, 3, 4])} {* vypíše 1 *}
{=first('abcd')} {* vypíše 'a' *}
Viz také last, filtr first.
last(string|array $value): mixed
Vrací poslední prvek pole nebo znak řetězce:
{=last([1, 2, 3, 4])} {* vypíše 4 *}
{=last('abcd')} {* vypíše 'd' *}
Viz také first, filtr last.
odd(int $value): bool
Zkontroluje, zda je dané číslo liché.
{if odd($num)} ... {/if}
slice(string|array $value, int $start, ?int $length=null, bool $preserveKeys=false): string|array
Extrahuje část pole nebo řetězce.
{=slice('hello', 1, 2)} {* vypíše 'el' *}
{=slice(['a', 'b', 'c'], 1, 2)} {* vypíše ['b', 'c'] *}
Filtr funguje jako funkce PHP array_slice
pro pole nebo mb_substr
pro řetězce s fallbackem na
funkci iconv_substr
v režimu UTF‑8.
Pokud je start kladný, posloupnost začné posunutá o tento počet od začátku pole/řetezce. Pokud je záporný posloupnost začné posunutá o tolik od konce.
Pokud je zadaný parametr length a je kladný, posloupnost bude obsahovat tolik prvků. Pokud je do této funkce předán záporný parametr length, posloupnost bude obsahovat všechny prvky původního pole, začínající na pozici start a končicí na pozici menší na length prvků od konce pole. Pokud tento parametr nezadáte, posloupnost bude obsahovat všechny prvky původního pole, začínající pozici start.
Ve výchozím nastavení filtr změní pořadí a resetuje celočíselného klíče pole. Toto chování lze změnit nastavením preserveKeys na true. Řetězcové klíče jsou vždy zachovány, bez ohledu na tento parametr.