By submitting PHP Resources you own, or know of, you'll help us build the largest PHP Resource website on the net. Please double check that your resource doesn't already exist before you submit it!!. We thank you for helping make this a better website.
Variable modifiers can be applied to
variables,
custom functions or strings.
To apply a modifier, specify the value followed by a |
(pipe) and the modifier name. A modifier may accept additional parameters
that affect its behavior. These parameters follow the modifer name and are
separated by a : (colon). Also,
all php-functions can be used as modifiers implicitly
(more below) and modifiers can be
combined.
.
Example 5-1. Modifier examples
{* apply modifier to a variable *}
{$title|upper}
{* modifier with parameters *}
{$title|truncate:40:'...'}
{* apply modifier to a function parameter *}
{html_table loop=$myvar|upper}
{* with parameters *}
{html_table loop=$myvar|truncate:40:'...'}
{* apply modifier to literal string *}
{'foobar'|upper}
{* using date_format to format the current date *}
{$smarty.now|date_format:"%Y/%m/%d"}
{* apply modifier to a custom function *}
{mailto|upper address='smarty@example.com'}
{* using php's str_repeat *}
{'='|str_repeat:80}
{* php's count *}
{$myArray|@count}
{* php's shuffle on servers's ip *}
{$smarty.server.SERVER_ADDR|shuffle}
(* this will uppercase and truncate the whole array *}
<select name="name_id">
{html_options output=$myArray|upper|truncate:20}
</select>
If you apply a modifier to an array variable instead of a single value variable,
the modifier will be applied to every value in that array. If you really want
the modifier to work on an entire array as a value, you must prepend the
modifier name with a @ symbol.
Example: {$articleTitle|@count} - will print out the number of
elements in the $articleTitle array using the php
count()
function as a modifier.
Modifiers are autoloaded from the $plugins_dir
or can be registered explicitly with the register_modifier()
function. The later is useful for sharing a function between
php scripts and smarty templates.
All php-functions can be used as modifiers implicitly, as demonstrated in the
example above.
However, using php-functions as modifiers has two little pitfalls:
First - sometimes the order of the function-parameters is
not the desirable one. Formatting $foo with
{"%2.f"|sprintf:$foo} actually
works, but asks for the more intuitive, like
{$foo|string_format:"%2.f"} that is provided by
the Smarty distribution.
Secondly - if $security is enabled, all php-functions that
are to be used as modifiers have to be declared trusted in the
MODIFIER_FUNCS element of the
$security_settings array.