Šablony: makro {elseforeach}

- vitas
- Člen | 6
Líbilo by se mi makro {elseforeach} (a přijde mi divné, že
to už někdo nechtěl):
Místo víceúrovňového:
{if count($items)}
{foreach $items as $item}
$item['name'],
{/foreach}
{else}
<i>no items</i>
{/if}
je zajisté přehlednější:
{foreach $items as $item}
$item['name'],
{elseforeach}
<i>no items</i>
{/foreach}
Pro sebe jsem si ho nabastlil takto, ale při zásahu do maker
{foreach} a {/foreach} by to šlo asi čistěji:
NLatteMacros::$defaultMacros['elseforeach'] ='<?php endforeach;foreach($iterator->isEmpty()?array(1):array() as $_dummy): ?>';

- Filip Procházka
- Moderator | 4668
pěkná funkce, ale na foreachelse ani eachelse bych si asi nezvykl…
{foreach $items as $item}
$item['name']{sep},{/sep}
{/foreach}
{if !count($items)}
<i>no items</i>
{/if}

- vitas
- Člen | 6
Cifro napsal(a):
Ako že nie? A toto? https://forum.nette.org/…achelse-each :)))
No, v podstatě jo. Jen … tvé řešení vyžaduje nutně použití
{eachelse}, já to myslel jako nepovinné.
Když to tam nechci použiji foreach a když jo tak
each, … přijde mi to takové neelegantní.

- Filip Procházka
- Moderator | 4668
Od toho to ale přeci nepřepisuje původní foreach ne? když chci jen iterovat dám foreach, když chci else tak použiju Cifrovo řešení? :)

- vitas
- Člen | 6
HosipLan napsal(a):
Od toho to ale přeci nepřepisuje původní foreach ne? když chci jen iterovat dám foreach, když chci else tak použiju Cifrovo řešení? :)
Asi nikoho nepřesvědčím. Je jako by pro větvení bylo makro
{ifelse}{else}{/ifelse} a {if}{/if} se mohlo použít
jen bez {else}. {each} je jako hack dobrý, ale
nepřijde mi to jako koncepční.