Vykreslení setOption v šabloně
- JaroslavRamba
- Člen | 20
Zdravím,
mohu poprosit o radu, v čem postupuji špatně, jelikož v šabloně se mi
nic nevykreslí.
Děkuji
Presenter
public function actionDefault() {
$this['settingsForm']['title']->setOption( 'description',
Nette\Utils\Html::el( 'p' )->setHtml( 'Toto číslo zůstane skryté. <a href="...">Podmínky uchovávání Vašeho čísla</a>' ) );
}
*.latte
{form settingsForm class => "mainForm"}
<fieldset>
<div class="widget first">
<div class="head"><h5 class="iList">Základní nastavení</h5></div>
<div class="rowElem noborder">
{label title /} {$settingsForm[title]->value[description]}
...
Editoval JaroslavRamba (16. 9. 2012 14:20)
- Tomáš Votruba
- Moderator | 1114
Ahoj, zkus si dumpnout $settingsForm["title"]
v šabloně, to
už ti napoví, jak se k description dostat.
{? dump($settingsForm["title"])}
- JaroslavRamba
- Člen | 20
Vrací mi NULL a to samé
{? var_dump($settingsForm)}
nepřistupuje se k tomu jinak v tomto případě vykreslování formuláře?
- Tomáš Votruba
- Moderator | 1114
Promiň, zkopíroval jsem tvou chybu :D.
Komentář je vně form makra přístupný v šabloně přes
$control
:
{$control['settingsForm']['title']->options['description']}
Uvnitř pak pomocí $form
:
{$_form['title']->options['description']}
- JaroslavRamba
- Člen | 20
Díky moc, vyřešeno.
Je k tomuto případu někde dokumentace, kterou jsem přehlédl?
- MartyIX
- Člen | 217
{$_form['title']->options['description']}
Ono toto je v zásadě trik, protože proměnná $_form
v dokumentaci není popsaná a tedy do budoucna by se to mohlo změnit (malá
pravděpodobnost).
Každopádně jméno této proměnné (že k formuláři se skutečně
dostaneš přes $_form
) lze najít snadno v temp
složce v souboru odpovídajícímu tvé šabloně. Myslím, že je to celkem
užitečné, aby člověk získal představu, co vlastně Nette dělá a co tedy
fungovat může a co ne.