Vlastní složítější párové makro
- jasin755
- Člen | 116
Zdravím,
jelikož dokumentace vlastních maker je v Nette nic moc :( tak se potřebují
zeptat…
Vytvářím složitější makro, které by v závěru mělo vypadat +/-
následovně:
{input $entity,'name','description'...}
<tr><td><input class="nejaka-trida" id="{$entity->name}-nazev" /></td></tr>
{/input}
Tzn. potřebuji aby:
- Vstupem byla jedna pevná proměná a volitelný počet ostatních
- Abych dokázal pracovat v metodě, která zpracováva makro s tím co je mezi otvíracím a zavíracím tagem
- Abych měl dostupnou proměnou $entity (nebo jakoukoli jinou co si vymyslím) v makro mezi otvíracím a zavíracím tagem
Díky za rady :)
- greeny
- Člen | 405
párová makra umí (pokud vím) nahradit jen obsah mezi {
a
}
něčím jiným, např. {if $a}
za
if($a) {
. Na takovýhle věci bude asi lepší použít komponentu
- Zax
- Člen | 370
- by určitě mělo jít, viz makro {control}, které přijímá volitelně parametry
- by možná mohlo jít ($node->content maybe? Nevím, jen tipuji ;-) )
- tohle asi ne… Latte je přeci jen v podstatě „převaděč textu na PHP kód“ když to hodně zjednoduším
- jasin755
- Člen | 116
$node->content je NULL, resp když si dumpuji všechny property objektu $node, tak jsou NULL nebo FALSE… snad kromě $node->macro.
Jinak snažil jsem se to obejit a udělat to filtrem a opět jsem narazil. Makro {foreach} umi pracovat s helpery? Nebo v čem je problém?
Mám:
{foreach $product->currentProductShop|input:name:alternativeName AS $input}
Ahoj
{/foreach}
A hodí mi to:
Parse error: syntax error, unexpected ')'
Když se podívám co to přeložilo, tak to z toho vytvořilo tohle:
<?php $iterations = 0; foreach ($product->currentProductShop) { ?>
což je samozřejmě špatně… Ty makra z toho maji vytvořit InputCollection, který implementuje IteratorAgregate