Zakázání escapování odkazů
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Seith
- Člen | 24
Ahoj,
mám vlastní helper, který mi v textu převede odkazy do klikatelné podoby.
Tento text chci samozřejmě escapovat, vyjímkou jsou vytvořené odkazy.
Napadá mě přímo v helperu data escapovat pro html kontext a poté je
vypisovat s vykřičníkem. Kde bych nejjednodušeji získal
Helpers::escapeHtml()?
- Seith
- Člen | 24
Tak nakonec jsem to pořešil takto. Vypisuji přes {!$var|linkify}.
$that = $this;
$this->template->registerHelper('linkify', function ($s) use ($that) {
$s = $that->template->escapeHtml($s);
return preg_replace('~((http(s?)://)|(www\.))(\S+[^,.\s])~',
'<a href="http$3://$4$5" target="_blank">$0</a>', $s);
});