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 | 1280
<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 | 1280
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 | 1280
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 | 1280
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 | 1280
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 | 1280
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>'));