Smarty Template Engine 8.díl Modifikátory II.
A jaké, že tedy jsou modifikátory, jež Smarty nabízí svým kodérům?
Plné znění nápovědy k modifikátorům naleznete zde:
http://smarty.net/manual/en/language.modifiers.php
Nepovinné parametry jsou zadávány kurzívou.
{$vari|capitalize:true/false} – nastavení počátečních písmen každého slova na kapitálky. V případě zadání nepovinného paramatru na true nastaví capitálky také u slov s číslicí. Defaultní je tedy hodnota false.
{$vari|cat:' moje slovo '} - k předanému řetězci připíše text v apotostrofech (v tomto případě: moje slovo)
{$vari|count_characters:true/false} - spočítá počet znaků předaných v proměnné. Nepovinný parametr nastavuje, zda počítat i mezery. Defaultně je nastaven na false.
{$vari|paragraphs} – spočítá počet odstavců, předaných v proměnné.
{$vari|count_sentences} – spočítá počet vět, předaných v proměnné
{$vari|count_words} – spočítá počet slov, předaných v proměnné
{$vari|date_format} – podrobně jsme probrali v minulém díle. Slouží k nastavení výstupu data, pracuje s Unixovým razítkem. Defaultně je nastaveno na: %b %e, %Y .
Druhý nepovinný parametr pak nastavuje datum, jež se má vypsat v případě, že proměnná je prázdna, nebo nebyla předána. Tedy např.:
{$vari|date_format:'%R':'12:02'}. Závisí však pak na typu vypisovaného data v prvním parametru.
{$vari|default:'vypiseme} – nastavuje defaultní hodnotu, v případě, že je proměnná prázdná, nebo nebyla předána. Defaultně je nastavena jako prázdný řetězec.
{$vari|escape} – přepisuje danou proměnnou dle jisté šablony. Pomocí escape můžeme v textu např. Nahradit „@“ za [at], či [zav], editaci html entit apod. Má dva nepovinné parametry.
Pomocí prvního nastavujeme typ změny. Povolené hodnoty jsou:
html - nahrazení html za ascii ekvivalenty pro: & " ' < > *
htmlall - nahrazení všech html znaků
url - slouží k převedení znaků v odkazů na ascii ekvivalenty, jež je možno úspěšně předat pomocí metody GET). Modifikátor pro jejich dešifrování je |urlencode
quotes – zpětná lomítka u uvozovek
hex - převedení na entity
hexentity – převedení na hex entity
javascript – převede na text
mail - nahrazen @ a . za anglické ekvivalenty v hranatých závorkách [at] a [dot]
o tomto prvku podrobně zde:
http://smarty.net/manual/en/language.modifier.escape.php
index.php
<?php
require_once("./hlavicka.php");
$text = "Tato veta bude mit 6 slov.";
$datum = date("Y-m-d H:i:s");
$nic = "";
$escape['html'] = "<b>nesmi byt tucne</b>";
$escape['htmlall'] = "<strong>nesmi byt tucne</strong>";
$escape['url'] = "http://banan.cz/id=ěě";
$escape['quotes'] = "'nic'";
$escape['email'] = "podpora@banan.cz";
$smarty->assign('text' , $text);
$smarty->assign('datum' , $datum);
$smarty->assign('datum_nic' , '');
$smarty->assign('nic' , $nic);
$smarty->assign('escape' , $escape);
$smarty->display('index.tpl');
?>
index.tpl
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-language" content="cs" />
<title>
Smarty - index
</title>
</head>
<body>
<div>
<p>
count word: {$text|count_words}<br/>
date_format: {$datum|date_format:'%Y. %m. %d. %R':'1.1.1996 00:00'}<br/>
date_format:default: {$datum_nic|date_format:'%Y. %m. %d. %R':'1.1.1996 00:00'}<br/>
default: {$nic|default:'prazdna'}<br/>
escape:url: <a href="{$escape.url|escape:url}">{$escape.url}</a><br/>
escape:quotes: {$escape.quotes|escape:quotes}<br/>
escape:email: {$escape.email|escape:mail}<br/>
escape:email: <a href="mailto:{$escape.email|escape:'hex'}">{$escape.email|escape:mail}</a><br/>
</p>
</div>
</body>
</html>