Nette Documentation Preview

syntax
Latte funkce
************

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

.[table-latte-filters]
| `clamp`      | [ohraničí hodnotu do daného rozsahu |#clamp]
| `divisibleBy`| [zkontroluje, zda je proměnná dělitelná číslem |#divisibleBy]
| `even`       | [zkontroluje, zda je dané číslo sudé |#even]
| `first`      | [vrací první prvek pole nebo znak řetězce |#first]
| `hasBlock`   | [zjistí existenci bloku |#hasBlock]
| `last`       | [vrací poslední prvek pole nebo znak řetězce |#last]
| `odd`        | [zkontroluje, zda je dané číslo liché |#odd]
| `slice`      | [extrahuje část pole nebo řetězce |#slice]


Použití
=======

Funkce se používají strejně jaké běžné PHP funkce a lze je použít ve všechn výrazech:

```latte
<p>{clamp($num, 1, 100)}</p>

{if odd($num)} ... {/if}
```

[Vlastní funkce|extending-latte#funkce] lze registrovat tímto způsobem:

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

V šabloně se potom volá takto:

```latte
<p>{shortify($text)}</p>
<p>{shortify($text, 100)}</p>
```


Funkce
======


clamp(int|float $value, int|float $min, int|float $max): int|float .[method]
----------------------------------------------------------------------------
Ohraničí hodnotu do daného inkluzivního rozsahu min a max.

```latte
{=clamp($level, 0, 255)}
```

Viz také [filtr clamp|filters#clamp].


divisibleBy(int $value, int $by): bool .[method]
------------------------------------------------
Zkontroluje, zda je proměnná dělitelná číslem.

```latte
{if divisibleBy($num, 5)} ... {/if}
```


even(int $value): bool .[method]
--------------------------------
Zkontroluje, zda je dané číslo sudé.

```latte
{if even($num)} ... {/if}
```


first(string|array $value): mixed .[method]
-------------------------------------------
Vrací první prvek pole nebo znak řetězce:

```latte
{=first([1, 2, 3, 4])}    {* vypíše 1 *}
{=first('abcd')}          {* vypíše 'a' *}
```

Viz také [#last], [filtr first|filters#first].


hasBlock(string $name): bool .[method]{data-version:3.0.10}
-----------------------------------------------------------
Zjistí, zda blok uvedeného jména existuje:

```latte
{if hasBlock(header)} ... {/if}
```

Viz také [kontrola existence bloků|template-inheritance#Kontrola existence bloků].


last(string|array $value): mixed .[method]
------------------------------------------
Vrací poslední prvek pole nebo znak řetězce:

```latte
{=last([1, 2, 3, 4])}    {* vypíše 4 *}
{=last('abcd')}          {* vypíše 'd' *}
```

Viz také [#first], [filtr last|filters#last].


odd(int $value): bool .[method]
-------------------------------
Zkontroluje, zda je dané číslo liché.

```latte
{if odd($num)} ... {/if}
```


slice(string|array $value, int $start, int $length=null, bool $preserveKeys=false): string|array .[method]
----------------------------------------------------------------------------------------------------------
Extrahuje část pole nebo řetězce.

```latte
{=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.

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
hasBlock zjistí existenci bloku
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}

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.

hasBlock(string $name): bool

Zjistí, zda blok uvedeného jména existuje:

{if hasBlock(header)} ... {/if}

Viz také kontrola existence bloků.

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.