DataGrid – jak vypnout escapovani?
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- kozel
- Člen | 14
Mam-li v databazi text ‚Žluťoučký kůň‘ nebo <a href=„…“>odkaz</a>, tak ho datagrid pri vypisu automaticky escapuje na neco podobneho tomuhle:
Žluťoučký kůň apod.).
Da se tomu jednoduse zabranit? Necim jako:
$data = $model->seznamZprav();
$grid->bindDataTable($data);
$grid->addColumn('zprava', 'Zpráva')
->noescape();
- Honza Kuchař
- Člen | 1662
https://componette.org/search/?…
Pokud vím, tak by ti měl pomoci formatCallback.
// předpokládejme sloupec, jehož obsahem je například velikost souboru
$grid['size']->formatCallback[] = 'TemplateHelpers::bytes';
- Honza Kuchař
- Člen | 1662
Teď mě tak napadlo (nezkoušel jsem to), ale teoreticky by mělo fungovat, ale nefunguje
$grid['size']->formatCallback[] = 'echo';
// EDIT: ale funguje tohle:
function decodeHTML($s){
return htmlspecialchars_decode($s);
}
$grid['size']->formatCallback[] = 'decodeHTML';
Editoval honzakuchar (11. 8. 2009 18:20)
- Honza Kuchař
- Člen | 1662
No hlavně funkce navěšná na formatCallback musí vracet upravený string. Nikoli ho vypsat.
P.S.: Jako druhý parametr formatCallback se předává
DibiRow
.