Autor: JIz

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:

  1. Proměnné _ (nebo alias) se přiřadí testovaná hodnota.
  2. 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.