Přehled standardních filtrů
Pro obecné informace o filtrech si přečtěte stránku Nette\Templates\Template.
Latte
Latte filter (dříve znám jako CurlyBracketsFilter) je
jediným filtrem, který je ve vykreslitelných komponentách
(Control a Presenter) registrován automaticky.
Slouží nejen pro usnadnění zápisu šablon, ale také umožňuje
pracovat s bloky a podporuje kontextově sensitivní
escapování.
Ukázka použití v šabloně:
<ul n:if="count($products)">
{foreach $products as $product}
<li>
<a href="{plink Products:view, $product->id}">{$product->name}</a>
<small n:if="$product->detail">{$product->detail}</small>
</li>
{/foreach}
</ul>
Pro bližší informace si přečtěte stránku Latte filter.
NetteLinks
Překládá adresy odkazů ve tvaru
nette:Presenter:view?arg=value na URL.
Ukázka použití v šabloně:
<a href="nette:Products:view?id=17">TV</a>
Registrace:
$template->registerFilter('Nette\Templates\TemplateFilters::netteLinks');
RelativeLinks
Všechny cesty v atributech src, href a
action doplní v případě potřeby o $baseUri.
Registrace:
$template->registerFilter('Nette\Templates\TemplateFilters::relativeLinks');
RemovePhp
Odstraní ze šablony veškerý PHP kód.
Ukázka použití v šabloně:
Hello <?php nebezpecnaFunkce() ?> World
Registrace:
$template->registerFilter('Nette\Templates\TemplateFilters::removePhp');
TexyElements
Umožní použití speciálního tagu
<texy>...</texy>.
Ukázka použití v šabloně
<texy>Text **tučně**, [odkaz | example.com] atd.</texy>
Registrace
Aby tento filtr fungoval, musí být inicializovaná statická proměnná
$texy třídy Nette\Templates\TemplateFilters.
$template->registerFilter('Nette\Templates\TemplateFilters::texyElements');
Nette\Templates\TemplateFilters::$texy = new Texy();
Příklad registrace filtru texyElements v Presenteru
use Nette\Application\Presenter;
use Nette\Templates\TemplateFilters;
abstract class BasePresenter extends Presenter
{
public function templatePrepareFilters($template)
{
parent::templatePrepareFilters($template);
// inicializace Texy
TemplateFilters::$texy = new Texy();
TemplateFilters::$texy->encoding = 'utf-8';
TemplateFilters::$texy->allowedTags = Texy::NONE;
TemplateFilters::$texy->allowedStyles = Texy::NONE;
TemplateFilters::$texy->setOutputMode(Texy::HTML5);
// registrace filtru texyElements
$template->registerFilter('Nette\Templates\TemplateFilters::texyElements');
}
}
Viz také:



