Funkcije Latte
V predlogah lahko poleg običajnih funkcij PHP uporabljamo tudi te dodatne.
Uporaba
Funkcije se uporabljajo enako kot običajne funkcije PHP in jih je mogoče uporabiti v vseh izrazih:
<p>{clamp($num, 1, 100)}</p>
{if odd($num)} ... {/if}
Funkcije po meri se lahko registrirajo na ta način:
$latte = new Latte\Engine;
$latte->addFunction('shortify', fn(string $s, int $len = 10) => mb_substr($s, 0, $len));
V predlogi se nato kliče takole:
<p>{shortify($text)}</p>
<p>{shortify($text, 100)}</p>
Funkcije
clamp (int|float $value, int|float $min, int|float $max): int|float
Omeji vrednost na dano vključno območje min in max.
{=clamp($level, 0, 255)}
Glejte 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 dano število sodo.
{if even($num)} ... {/if}
first (string|iterable $value): mixed
Vrne prvi element polja ali znak niza:
{=first([1, 2, 3, 4])} {* izpiše 1 *}
{=first('abcd')} {* izpiše 'a' *}
Glejte tudi last, filter first.
group (iterable $data, string|int|\Closure $by): array
Funkcija združi podatke po različnih kriterijih.
V tem primeru se vrstice v tabeli združujejo po stolpcu categoryId
. Izpis 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}
Glejte tudi filter group.
hasBlock (string $name): bool
Ugotovi, ali blok z navedenim imenom obstaja:
{if hasBlock(header)} ... {/if}
Glejte tudi preverjanje obstoja blokov.
last (string|array $value): mixed
Vrne zadnji element polja ali znak niza:
{=last([1, 2, 3, 4])} {* izpiše 4 *}
{=last('abcd')} {* izpiše 'd' *}
Glejte tudi first, filter last.
odd (int $value): bool
Preveri, ali je dano število liho.
{if odd($num)} ... {/if}
slice (string|array $value, int $start, ?int $length=null, bool $preserveKeys=false): string|array
Izvleče del polja ali niza.
{=slice('hello', 1, 2)} {* izpiše 'el' *}
{=slice(['a', 'b', 'c'], 1, 2)} {* izpiše ['b', 'c'] *}
Funkcija deluje kot funkcija PHP array_slice
za polja ali mb_substr
za nize z rezervno funkcijo
iconv_substr
v načinu UTF‑8.
Če je start
pozitiven, se bo zaporedje začelo zamaknjeno za to število od začetka polja/niza. Če je
negativen, se bo zaporedje začelo zamaknjeno za toliko od konca.
Če je podan parameter length
in je pozitiven, bo zaporedje vsebovalo toliko elementov. Če je tej funkciji
posredovan negativen parameter length
, bo zaporedje vsebovalo vse elemente prvotnega polja, začenši na poziciji
start
in končavši na poziciji, manjši za length
elementov od konca polja. Če tega parametra ne
podate, bo zaporedje vsebovalo vse elemente prvotnega polja, začenši na poziciji start
.
Privzeto funkcija spremeni vrstni red in ponastavi celoštevilske ključe polja. To vedenje lahko spremenite z nastavitvijo
preserveKeys
na true
. Nizovni ključi se vedno ohranijo, ne glede na ta parameter.