Latte funkciók
Az általános PHP-funkciók mellett ezeket is használhatod a sablonokban.
Használat
A függvények ugyanúgy használhatók, mint az általános PHP függvények, és minden kifejezésben használhatók:
<p>{clamp($num, 1, 100)}</p>
{if odd($num)} ... {/if}
Egyéni függvények így regisztrálhatók:
$latte = new Latte\Engine;
$latte->addFunction('shortify', fn(string $s, int $len = 10) => mb_substr($s, 0, $len));
Egy sablonban így használjuk:
<p>{shortify($text)}</p>
<p>{shortify($text, 100)}</p>
Funkciók
clamp (int|float $value, int|float $min, int|float $max): int|float
Visszaadja a min és max tartományba szorított értéket.
{=clamp($level, 0, 255)}
Lásd még szűrőbilincs:
divisibleBy (int $value, int $by): bool
Ellenőrzi, hogy egy változó osztható-e egy számmal.
{if divisibleBy($num, 5)} ... {/if}
even (int $value): bool
Ellenőrzi, hogy az adott szám páros-e.
{if even($num)} ... {/if}
first (string|iterable $value): mixed
Visszaadja a tömb első elemét vagy a karakterlánc első karakterét:
{=first([1, 2, 3, 4])} {* kimenet 1 *}
{=first('abcd')} {* kimenet 'a' *}
Lásd még last, filter first.
group (iterable $data, string|int|\Closure $by): array
Ez a funkció különböző kritériumok szerint csoportosítja az adatokat.
Ebben a példában a táblázat sorait a categoryId
oszlop alapján csoportosítja. A kimenet egy mezőkből
álló tömb, ahol a kulcs a categoryId
oszlopban szereplő érték. Olvassa el a részletes utasításokat.
{foreach group($items, categoryId) as $categoryId => $categoryItems}
<ul>
{foreach $categoryItems as $item}
<li>{$item->name}</li>
{/foreach}
</ul>
{/foreach}
Lásd még szűrőcsoport.
hasBlock (string $name): bool
Ellenőrzi, hogy a megadott nevű blokk létezik-e:
{if hasBlock(header)} ... {/if}
Lásd még a blokk létezésének ellenőrzése.
last (string|array $value): mixed
A tömb utolsó elemét vagy a karakterlánc utolsó karakterét adja vissza:
{=last([1, 2, 3, 4])} {* 4 kimenet *}
{=last('abcd')} {* kimenet 'd' *}
Lásd még first, filter last.
odd (int $value): bool
Ellenőrzi, hogy a megadott szám páratlan-e.
{if odd($num)} ... {/if}
slice (string|array $value, int $start, ?int $length=null, bool $preserveKeys=false): string|array
Kivonja egy tömb vagy egy karakterlánc egy szeletét.
{=slice('hello', 1, 2)} {* kimenet 'el' *}
{=slice(['a', 'b', 'c'], 1, 2)} {* kimenet ['b', 'c'] *}
A slice-szűrő a array_slice
PHP-funkcióként működik tömbök esetében, a mb_substr
pedig
karakterláncok esetében, UTF-8 módban pedig a iconv_substr
funkcióra való visszalépéssel.
Ha a kezdet nem negatív, akkor a szekvencia a változóban ezzel a kezdőponttal kezdődik. Ha a start negatív, akkor a szekvencia a változó végétől ilyen messze kezdődik.
Ha a length értéke pozitív, akkor a szekvencia legfeljebb ennyi elemet tartalmaz. Ha a változó rövidebb, mint a hossz, akkor csak a rendelkezésre álló változóelemek lesznek jelen. Ha a hossz meg van adva és negatív, akkor a sorozat ennyi elemmel a változó vége előtt fog megállni. Ha nem adjuk meg, akkor a szekvencia az eltolódástól a változó végéig mindent tartalmazni fog.
A Filter alapértelmezés szerint átrendezi és visszaállítja az integer tömb kulcsát. Ez a viselkedés megváltoztatható a preserveKeys true értékre állításával. A string kulcsok ettől a paramétertől függetlenül mindig megmaradnak.