with
Testuje existenci hodnoty a zjednodušuje k ní další přístup.
with
expression [use
alias ] body-1 [else
body-2 ]/with
- expression
- Testovaný výraz. Může jít o hodnotu libovolného typu; podle svého typu se hodnota při samotném testu konvertuje na logickou hodnotu.
- alias
- Volitelně: proměnná, ve které bude dostupná hodnota expression. Default je
_
. - body-1
- Část šablony, která se vyhodnotí, pokud se expression konvertovala na
true
. V rámci tohoto bloku je dostupná proměnná_
(nebo případně alias), jejíž hodnotou je hodnota výrazu expression (před konverzí na logickou hodnotu). - body-2
- Část šablony, která se vyhodnotí, pokud se expression konvertovala na
false
. Tato část příkazu je nepovinná.
Příklad: Příkaz with
Šablona
{with list(_asset.imageSet, 0)}
<a href="{ref(_.parameters.full)}">
{<img src=_.parameters.thumbnail />}
</a>
{/with}
Pokud má asset v hodnotě atributu imageSet
nastavenou první položku (tj. hodnotou atributu je neprázdný seznam), použije se tato položka k výpisu náhledu obrázku s rozkliknutím na detail.
(Předpokládá se tu použití komponenty Image Manager; hodnotou proměnné _
v těle příkazu je asset typu Motiv galerie.)
Příkaz lze brát jako zkratku za if
. Pokud dá testovaná hodnota při převodu na Boolean hodnotu true
, provedou se před vyhodnocením body-1 následující kroky:
- Proměnné
_
(nebo alias) se přiřadí testovaná hodnota. - Pokud je testovaná hodnota strukturovaná, pak se její podhodnoty nastaví jako proměnné dostupné při vyhodnocování body-1. Tuto vlastnost se nedoporučuje používat. V budoucnu bude pravděpodobně zrušena.
Liší se tedy od příkazu with
v jiných jazycích tím, že první větev příkazu se vůbec nevyhodnotí, pokud testovaná hodnota při konverzi na logickou hodnotu dá false
. Je třeba zejména dávat pozor na číslo 0 a prázdný řetězec.
Pro vložení příspěvku do diskuse se přihlašte.