Vykreslení setOption v šabloně

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
JaroslavRamba
Člen | 20
+
0
-

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
+
0
-

Ahoj, zkus si dumpnout $settingsForm["title"] v šabloně, to už ti napoví, jak se k description dostat.

{? dump($settingsForm["title"])}
JaroslavRamba
Člen | 20
+
0
-

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
+
0
-

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
+
0
-

Díky moc, vyřešeno.
Je k tomuto případu někde dokumentace, kterou jsem přehlédl?

MartyIX
Člen | 217
+
0
-
{$_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.

JaroslavRamba
Člen | 20
+
0
-

Super tip, díky moc.