Nette Documentation Preview

syntax
Funkcije Latte
**************

.[perex]
Poleg običajnih funkcij PHP lahko v predlogah uporabljate tudi te.

.[table-latte-filters]
| `clamp` | [vpne vrednost v območje |#clamp]
| `divisibleBy`| [preveri, ali je spremenljivka deljiva s številom |#divisibleBy]
| `even` | [preveri, ali je dano število sodo |#even]
| `first` | [vrne prvi element polja ali znak niza |#first]
| `group` | [združevanje podatkov po različnih merilih |#group]
| `hasBlock` | [zazna obstoj bloka |#hasBlock]
| `last` | [vrne zadnji element polja ali znak niza |#last]
| `odd` | [preveri, ali je podano število liho |#odd]
| `slice` | [izvleče rezino polja ali niza |#slice]


Uporaba .[#toc-usage]
=====================

Funkcije se uporabljajo na enak način kot običajne funkcije PHP in se lahko uporabljajo v vseh izrazih:

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

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

[Funkcije po meri |extending-latte#functions] lahko registrirate na ta način:

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

Uporabimo jo v predlogi, kot je ta:

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


Funkcije .[#toc-functions]
==========================


clamp(int|float $value, int|float $min, int|float $max): int|float .[method]
----------------------------------------------------------------------------
Vrne vrednost, ki je vpeta v območje min in max.

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

Glej tudi [filter clamp |filters#clamp]:


divisibleBy(int $value, int $by): bool .[method]
------------------------------------------------
Preveri, ali je spremenljivka deljiva s številom.

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


even(int $value): bool .[method]
--------------------------------
Preveri, ali je podano število sodo.

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


first(string|iterable $value): mixed .[method]
----------------------------------------------
Vrne prvi element polja ali znak niza:

```latte
{=first([1, 2, 3, 4])}    {* izhodi 1 *}
{=first('abcd')}          {* izhodi 'a' *}
```

Glej tudi [last |#last], [filter first |filters#first].


group(iterable $data, string|int|\Closure $by): array .[method]{data-version:3.0.16}
------------------------------------------------------------------------------------
Ta funkcija razvršča podatke v skupine glede na različna merila.

V tem primeru so vrstice v tabeli združene po stolpcu `categoryId`. Rezultat je polje polj, kjer je ključ vrednost v stolpcu `categoryId`. Preberite [podrobna navodila |cookbook/grouping].

```latte
{foreach group($items, categoryId) as $categoryId => $categoryItems}
    <ul>
        {foreach $categoryItems as $item}
            <li>{$item->name}</li>
        {/foreach}
    </ul>
{/foreach}
```

Oglejte si tudi [skupino |filters#group] filtrov.


hasBlock(string $name): bool .[method]{data-version:3.0.10}
-----------------------------------------------------------
Preveri, ali obstaja blok z navedenim imenom:

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

Glej tudi [preverjanje obstoja bloka |template-inheritance#Checking Block Existence].


last(string|array $value): mixed .[method]
------------------------------------------
Vrne zadnji element polja ali znak niza:

```latte
{=last([1, 2, 3, 4])}    {* izhodi 4 *}
{=last('abcd')}          {* izhodi 'd' *}
```

Glej tudi [first |#first], [filter last |filters#last].


odd(int $value): bool .[method]
-------------------------------
Preveri, ali je podano število liho.

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


slice(string|array $value, int $start, ?int $length=null, bool $preserveKeys=false): string|array .[method]
-----------------------------------------------------------------------------------------------------------
Izvleče rezino polja ali niza.

```latte
{=slice('hello', 1, 2)}           {* izhodi 'el' *}
{=slice(['a', 'b', 'c'], 1, 2)}   {* izhodi ['b', 'c'] *}
```

Filter rezine deluje kot funkcija PHP `array_slice` za polja in `mb_substr` za nize s povratno funkcijo `iconv_substr` v načinu UTF-8.

Če je začetek nenegativen, se zaporedje v spremenljivki začne s tem začetkom. Če je start negativen, se zaporedje začne tako daleč od konca spremenljivke.

Če je podana dolžina in je pozitivna, bo imelo zaporedje do toliko elementov. Če je spremenljivka krajša od dolžine, bodo prisotni samo razpoložljivi elementi spremenljivke. Če je podana dolžina in je negativna, se bo zaporedje ustavilo toliko elementov od konca spremenljivke. Če je dolžina izpuščena, bo zaporedje vsebovalo vse od odmika do konca spremenljivke.

Filter bo privzeto spremenil vrstni red in ponastavil ključe celoštevilskega polja. To obnašanje lahko spremenite z nastavitvijo vrednosti preserveKeys na true. Vrstični ključi se vedno ohranijo, ne glede na ta parameter.

Funkcije Latte

Poleg običajnih funkcij PHP lahko v predlogah uporabljate tudi te.

clamp vpne vrednost v območje
divisibleBy preveri, ali je spremenljivka deljiva s številom
even preveri, ali je dano število sodo
first vrne prvi element polja ali znak niza
group združevanje podatkov po različnih merilih
hasBlock zazna obstoj bloka
last vrne zadnji element polja ali znak niza
odd preveri, ali je podano število liho
slice izvleče rezino polja ali niza

Uporaba

Funkcije se uporabljajo na enak način kot običajne funkcije PHP in se lahko uporabljajo v vseh izrazih:

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

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

Funkcije po meri lahko registrirate na ta način:

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

Uporabimo jo v predlogi, kot je ta:

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

Funkcije

clamp(int|float $value, int|float $min, int|float $max): int|float

Vrne vrednost, ki je vpeta v območje min in max.

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

Glej tudi filter clamp:

divisibleBy(int $value, int $by)bool

Preveri, ali je spremenljivka deljiva s številom.

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

even(int $value): bool

Preveri, ali je podano število sodo.

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

first(string|iterable $value)mixed

Vrne prvi element polja ali znak niza:

{=first([1, 2, 3, 4])}    {* izhodi 1 *}
{=first('abcd')}          {* izhodi 'a' *}

Glej tudi last, filter first.

group(iterable $data, string|int|\Closure $by)array

Ta funkcija razvršča podatke v skupine glede na različna merila.

V tem primeru so vrstice v tabeli združene po stolpcu categoryId. Rezultat je polje polj, kjer je ključ vrednost v stolpcu categoryId. Preberite podrobna navodila.

{foreach group($items, categoryId) as $categoryId => $categoryItems}
    <ul>
        {foreach $categoryItems as $item}
            <li>{$item->name}</li>
        {/foreach}
    </ul>
{/foreach}

Oglejte si tudi skupino filtrov.

hasBlock(string $name): bool

Preveri, ali obstaja blok z navedenim imenom:

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

Glej tudi preverjanje obstoja bloka.

last(string|array $value)mixed

Vrne zadnji element polja ali znak niza:

{=last([1, 2, 3, 4])}    {* izhodi 4 *}
{=last('abcd')}          {* izhodi 'd' *}

Glej tudi first, filter last.

odd(int $value): bool

Preveri, ali je podano število liho.

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

slice(string|array $value, int $start, ?int $length=null, bool $preserveKeys=false): string|array

Izvleče rezino polja ali niza.

{=slice('hello', 1, 2)}           {* izhodi 'el' *}
{=slice(['a', 'b', 'c'], 1, 2)}   {* izhodi ['b', 'c'] *}

Filter rezine deluje kot funkcija PHP array_slice za polja in mb_substr za nize s povratno funkcijo iconv_substr v načinu UTF-8.

Če je začetek nenegativen, se zaporedje v spremenljivki začne s tem začetkom. Če je start negativen, se zaporedje začne tako daleč od konca spremenljivke.

Če je podana dolžina in je pozitivna, bo imelo zaporedje do toliko elementov. Če je spremenljivka krajša od dolžine, bodo prisotni samo razpoložljivi elementi spremenljivke. Če je podana dolžina in je negativna, se bo zaporedje ustavilo toliko elementov od konca spremenljivke. Če je dolžina izpuščena, bo zaporedje vsebovalo vse od odmika do konca spremenljivke.

Filter bo privzeto spremenil vrstni red in ponastavil ključe celoštevilskega polja. To obnašanje lahko spremenite z nastavitvijo vrednosti preserveKeys na true. Vrstični ključi se vedno ohranijo, ne glede na ta parameter.