nette 2.4 helper v proměnné
- tatyalien
- Člen | 239
Ahoj,
Mám do šablony předané array s názvy helperů, které si uživatel
nakliká a v cyklu to procházím postupně a nastavuji helpery.. Ale v nette
2.4. je proměnná $template deprecated. Níže zasílám jak to bylo ve
starším nette (fungovalo to dobře). Jak tento kód ale změnit?
//helper s parametry:
{var $textConvert = $template->{$helperEntity->getHelperName()}($textConvert, $tmpParams)}
//helper bez parametrů:
{var $textConvert = $template->{$helperEntity->getHelperName()}($textConvert)}
Zkusil jsem to přepsat na závorkovou notaci, ale taky to nebere.
{var $textConvert = ($textConvert|{$helperEntity->getHelperName()}($tmpParams))}
ale tam dostanu Modifier name must be alphanumeric string, ‚{‘ given in
- johnnie
- Člen | 54
v topicu o testovani nette 2.4 sa pise toto
přistupujete k proměnné $template kvůli volání filtrů, což lze nyní udělat přímo v šabloně pomocí výrazu ($var|trim) nebo v PHP kódu generovaným makrem pomocí call_user_func($this->filters->trim, $val, …).
pre sablony je urcene zvislitko ale skus to call_user_func, mozno pomoze.
Editoval johnnie (6. 6. 2017 9:57)
- David Matějka
- Moderator | 6445
dynamicke nazvy filtru nejsou oficialne podporovane. jedine reseni je to s call_user_func, jak pise @johnnie. problem je, ze to je celkem internals vec, takze se v budoucnu muze zmenit.
spise bych se zamyslel nad tim, zda je sablona to prave misto na nejake slozitejsi operace jako je ten tvuj kod a zda by nebylo lepsi to zpracovat v presenteru/modelu a do sablony posilat hotovy vysledek
- tatyalien
- Člen | 239
Díky: fachá:
//s parametrem:
{var $textConvert = call_user_func($this->filters->{$helperEntity->getHelperName()}, $textConvert, $tmpParams)}
//bez parametru
{var $textConvert = call_user_func($this->filters->{$helperEntity->getHelperName()}, $textConvert)}
johnnie napsal(a):
v topicu o testovani nette 2.4 sa pise toto
přistupujete k proměnné $template kvůli volání filtrů, což lze nyní udělat přímo v šabloně pomocí výrazu ($var|trim) nebo v PHP kódu generovaným makrem pomocí call_user_func($this->filters->trim, $val, …).
pre sablony je urcene zvislitko ale skus to call_user_func, mozno pomoze.
- tatyalien
- Člen | 239
Je to pro výpis mini datagridu, kde si uživatel naklikává případné konverze na hodnotě… takže to dělám až ve výpisu dat v šabloně :( (a může mít helpery jak pro zobrazení, pro export, tak pro nápovědu, takže úprava surových dat jen tak nejde…)
David Matějka napsal(a):
dynamicke nazvy filtru nejsou oficialne podporovane. jedine reseni je to s call_user_func, jak pise @johnnie. problem je, ze to je celkem internals vec, takze se v budoucnu muze zmenit.
spise bych se zamyslel nad tim, zda je sablona to prave misto na nejake slozitejsi operace jako je ten tvuj kod a zda by nebylo lepsi to zpracovat v presenteru/modelu a do sablony posilat hotovy vysledek
Editoval tatyalien (6. 6. 2017 10:29)