Funkcije Latte
Poleg običajnih funkcij PHP lahko v predlogah uporabljate tudi te.
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.