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.