EN | CS | Přihlásit | Registrovat

Přehled standardních filtrů

Pro obecné informace o filtrech si přečtěte stránku Nette\Templates\Tem­plate.

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.

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');

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é:


Login to submit a comment