Jak na implementaci texy v nette

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
pseudo
Člen | 13
+
0
-

Zdravím, je někde k dispozici nějaké podrobné howto, jak rozchodit texy spolu s nette?

Podle toho co jsem vyštrachal na https://latte.nette.org/cs/#…
jsem si stáhnul aktuální minified verzi texy, šoupnul ji do adresáře libs a do BasePresenteru přidal

<?php
	public function templatePrepareFilters($template)
    {
        parent::templatePrepareFilters($template);

        // inicializace
        TemplateFilters::$texy = new \Texy();
        TemplateFilters::$texy->encoding = 'utf-8';
        TemplateFilters::$texy->allowedTags = \Texy::NONE;
        TemplateFilters::$texy->allowedStyles = \Texy::NONE;
        TemplateFilters::$texy->setOutputMode(\Texy::HTML4_TRANSITIONAL);

        // registrace filtru
        $template->registerFilter('Nette\Templates\TemplateFilters::texyElements');
    }
?>

Očekával jsem, že teď mi již bude fungovat helper {$page->content |texy}, tohle však pouze vyhazuje výjimku MemberAccessException : Call to undefined method Nette\Templates\Template::texy().
pokud použiji pouze zbačky <texy></texy> mám pro data z databáze výstup @php:p3@ (pokud hodím formátovaný text natvrdo do šablony, je vše OK).

Jak to tedy funguje? :-)

Patrik Votoček
Člen | 2221
+
0
-

Jak by mohl fungovat helper když žádný neregistruješ? Registruješ pouze filter. A filter funguje jenom na statická data. Na dynamická data se používá helper.

pseudo
Člen | 13
+
0
-

Aha jasně, nějak jsem ze sesbíraných informací pochopil, že s filtrem pro <texy></texy> se registruje i helper :-). Ovšem to, že filtr nelze použít pro dynamická data jsem nevěděl. Existuj tedy v nette nějaký helper pro texy nebo si ho musím napsat? (tedy pokusit se o to)

Patrik Votoček
Člen | 2221
+
0
-

Analogicky k tvemu prikladu:

public function createTempate()
{
	// inicializace
	$texy = new \Texy();
	$texy->encoding = 'utf-8';
	$texy->allowedTags = \Texy::NONE;
	$texy->allowedStyles = \Texy::NONE;
	$texy->setOutputMode(\Texy::HTML4_TRANSITIONAL);

	// registrace filtru
	$template = parent::createTemplate();
	$template->registerHelper('texy', callback($texy, 'process'));
	return $template;
}
Corind
Člen | 6
+
0
-

Zdravím, už nějakou chvíli se snažím rozchodit Texy v Nette, ale bez úspěchu.. Filtr funguje v pohodě, ale helper prostě ne a ne.. Prolezl jsem fórum, registruju helper (v BasePresenteru) tady podle tvého návodu a nic.. I v čistým skeletonu je stejně pořád ta samá chyba:

MemberAccessException – Call to undefined method Template::texy()

Prosím o pomoc, fakt už nevím co dělám špatně..