Š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í.