Latte funkce

V šablonách můžeme kromě běžných PHP funkcí používat i tyto další.

clamp ohraničí hodnotu do daného rozsahu
divisibleBy zkontroluje, zda je proměnná dělitelná číslem
even zkontroluje, zda je dané číslo sudé
first vrací první prvek pole nebo znak řetězce
last vrací poslední prvek pole nebo znak řetězce
odd zkontroluje, zda je dané číslo liché
slice extrahuje část pole nebo řetězce

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}

Jako funkci lze do šablony zaregistrovat libovolný callback:

$latte = new Latte\Engine;
$latte->addFunction('shortify', function (string $s, int $len = 10): string {
	return 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)}           {* outputs 'el' *}
{=slice(['a', 'b', 'c'], 1, 2)}   {* outputs ['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.