Parametr helperu proměnná v šabloně

- Martin Mates
- Člen | 179
Chci se zeptat. Vytvořil jsem si helper, který by měl skloňovat měsíce
nebo týdny podle toho kolik jich je. Myšlenka takováto:
{$a['jednotka']|czSklon:5} Pokud bude $a[‚jednotka‘] týden,
tak to vrátí ‚týdnů‘ protože jich má být 5.
To by nebyl problém, jenže počet by měla být také proměnná takže se
dostávám k následujícímu:
{$a['jednotka']|czSklon:$a['pocet']} To nejde, hází to
Parse Error.
Jde to vůbec?

- jasir
- Člen | 746
Martin Mates napsal(a):
Chci se zeptat. Vytvořil jsem si helper, který by měl skloňovat měsíce nebo týdny podle toho kolik jich je. Myšlenka takováto:
{$a['jednotka']|czSklon:5}Pokud bude $a[‚jednotka‘] týden, tak to vrátí ‚týdnů‘ protože jich má být 5.
Nevím, jestli to jde tak, jak píšeš, ale ten helper může dostat více parametrů tímto způsobem:
<?php
function czsklon_helper($unit, $pocet)
{
...
}
?>
a pak můžeš volat
<?php
{$a['jednotka'],$pocet |czsklon}
?>
Editoval jasir (30. 4. 2009 21:55)

- Martin Mates
- Člen | 179
<?php {$a['jednotka'],$pocet |czsklon} ?>
Díky, tohle funguje! Myslel jsem, že se další parametry helperu dávají za dvojtečku.

- David Grudl
- Nette Core | 8285
{$a['jednotka'],$pocet |czsklon} je spíš trik, u kterého
nelze zaručit budoucí kompatibilitu. Nešlo by třeba
{$a['jednotka']|czSklon:"$a[pocet]"}?

- Martin Mates
- Člen | 179
David Grudl napsal(a):
{$a['jednotka'],$pocet |czsklon}je spíš trik, u kterého nelze zaručit budoucí kompatibilitu. Nešlo by třeba{$a['jednotka']|czSklon:"$a[pocet]"}?
Zkusil jsem to takto: {$a['jednotka']|czSklon:"$a['pocet']"} a
to nefunguje. Pak jsem si všiml, že nemáš uvozovky u $a[pocet].
Dal jsem je pryč a shazam! Už to jede. Nechápu :-) Díky!

- Ondřej Mirtes
- Člen | 1536
A nechtělo by to spíš zabudovat rovnou nějakou plnohodnotnou lokalizaci, než toto?
Viz např.: https://forum.nette.org/…i-lokalizace

- Martin Mates
- Člen | 179
LastHunter napsal(a):
A nechtělo by to spíš zabudovat rovnou nějakou plnohodnotnou lokalizaci, než toto?
Viz např.: https://forum.nette.org/…i-lokalizace
O tom jsem nevěděl. Díky! Určitě na to mrknu.