Vypnutí escapování v captionu submitu

- bdinvpvsmvpscuiqpc
- Člen | 57
Ahoj, potřebuji v captionu submitu použít
<strong>text</strong>. Nicméně se nevypíše
správně kvůli escapování. Jakým způsobem by bylo možné escapování zde
vypnout?

- Marek Bartoš
- Nette Blogger | 1313
<strong>{$form[submit]->getCaption()}</strong>
nebo {$form[submit]->getCaption()|noescape}

- bdinvpvsmvpscuiqpc
- Člen | 57
Jak by to vypadalo, pokud vykresluji formulář pomocí
{control loginForm}?

- Marek Bartoš
- Nette Blogger | 1313
Použij makro {formPrint loginForm} a zkopíruj si výsledek
Ukáže ti to, jak by formulář vypadal při manuálním renderování. Pak si
jednoduše přepíšeš co potřebuješ

- Marek Bartoš
- Nette Blogger | 1313
Zkus do render metody presenteru přidat
$this->session->start();, většinou na tenhle problém
pomůže nastartovat session dřív.

- Marek Bartoš
- Nette Blogger | 1313
Potom bych vyzkoušel na stejné místo dát
\Nette\Forms\Form::initialize();
Pokud nezabere, tak případně do app/Bootstrap.php přidat volání
\Tracy\OutputDebugger::enable(); a zjistit, kde začal výstup

- bdinvpvsmvpscuiqpc
- Člen | 57
Přidáním \Nette\Forms\Form::initialize(); do
renderDefault() vyřešilo problém.
V default.latte mám {input send}. Jak u něj lze vypnout
escapování?
Editoval bdinvpvsmvpscuiqpc (18. 2. 2021 16:23)

- Marek Bartoš
- Nette Blogger | 1313
Promiň, myslel jsem, že to vykresluje prvky podrobněji
{input send} můžeš nahradit za
<input n:name="send">, konkrétněji
třeba <button n:name="send" type="submit"><strong>{$form[send]->getCaption()}</strong></button>

- bdinvpvsmvpscuiqpc
- Člen | 57
Děkuji za rady. Bylo by možné vypnout escapování spíše v presenteru při vytváření formuláře?

- Marek Bartoš
- Nette Blogger | 1313
Tohle by myslím mělo fungovat, ale správné je použít šablonu. Máš
pak jen jedno místo, kde se html mění, namísto toho aby bylo rozházené po
malých kouscích v presenteru a komponentách a IDE tomu rozumí. Obzvlášť
v komplexnějších případech to hodně pomůže.
$form->addSubmit('send', new \Nette\Utils\Html('<strong>text</strong>'));