Ako vyrobiť vlastné makro (filter) aj s helperom?
- gawan
- Člen | 110
Zdravím,
chcel som si urobiť makro, ktoré by mi vypisovalo riadky tabuľky len ak
existuje hodnota $value.
V šablóne mám:
<table>
{tr $label, $value}
</table>
Presenter
<?php
...
LatteMacros::$defaultMacros['tr'] = '<?php echo Class::macroTr(%%); ?>';
}
public function macroTr($label, $value) {
if (!$value) return "";
return "<tr><th>$label</th><td>$value</td></tr>";
}
?>
čo mi aj funguje, ale rád by som použil na $label alebo $value nejaký helper napr:
<table>
{tr $label, $value|upper}
</table>
Ako upraviť makro, aby som mohol aplikovať ľubovoľný helper na niektorý
parameter?
Ďakujem.
- Petr Motejlek
- Člen | 293
Takhle narychlo by mně napadlo to třeba zkusit udělat takhle:
Aplikuj na tu proměnnou helper a ulož si výsledek do nějaké jiné proměnnné, kterou potom hodíš jako parametr toho makra, např:
<?php
{assign temp => $value|upper}
{tr $label, $temp}
?>
Editoval Petr Motejlek (5. 12. 2009 20:35)
- Filip Procházka
- Moderator | 4668
Zdravím,
chtěl jsem se zeptat, když mi nefunguje ani jeden zápis, je chyba u mě nebo je to feature? myslím že by se hodilo aby helpery byly podporované i uvnitř jiných maker, alespoň to assign
{foreach $rows as $key => $row}
<tr>
{assign first => $key|first}
{assign second => $key|second}
<td><a href="{link previewEach $first, $second}">{!$row['source_medium']|hardspaces}</a></td>
{foreach $row as $value}
{if !$iterator->isFirst()}<td>{$value}</td>{/if}
{/foreach}
</tr>
{/foreach}
{foreach $rows as $key => $row}
<tr>
<td><a href="{link previewEach $key|first, $key|second}">{!$row['source_medium']|hardspaces}</a></td>
{foreach $row as $value}
{if !$iterator->isFirst()}<td>{$value}</td>{/if}
{/foreach}
</tr>
{/foreach}
Editoval HosipLan (11. 12. 2009 13:50)