Модификаторы Smarty

Модификаторы позволяют преобразовывать значения переменных в Smarty-шаблонах.
  • можно применять одновременно несколько модификаторов
  • модификаторы могут принимать параметры
  • можно создавать собственные модификаторы

Синтаксис:

{$переменная|модификатор1:парам11:парам12|модификатор2:парам21:парам22}

Примеры:
{* модификатор с параметрами, комбинация модификаторов *}
{$title|truncate:40:'...'|upper}

{* использование date_format для форматирования текущей даты *}
{$smarty.now|date_format:"%Y/%m/%d"}

Модификаторы Smarty

{$title|count_characters:true} – кол-во символов без/с учетом пробелов
{$smarty.now|date_format:"%A, %B %e, %Y"} – форматирование даты
{$title|default:'no title'} – значение по умолчанию
{$title|replace:'Garden':'Vineyard'} – замена символов
{$title|truncate:30:"..."} – обрезка


Все модификаторы на сайте Smarty.

Модификаторы QS

{$blocks.menu|menuformat} – преобразование меню
{$blocks.block1|wackoformat} – полное вики-форматирование
{$blocks.block1|wackoformatsimple}рекомендуется упрощенное вики-форматирование (без action, форматтеров и т.п.)
{$blocks.block1|date_format_rus} – форматирование даты сделать curbased параметром

Создание модификаторов

Модификаторы хранятся в папке classes/smarty_plugins.
Имя файла modifier.[имя_форматтера].php


Пример форматтера modifier.userInfo.php
{$item.user|user_info:"age"} – информация о пользователе


<?php
function smarty_modifier_user_info($string$field="name"//первый параметр - $field, значение по умолчанию "name"
{
    global 
$wacko;
    
$servOnto $wacko->srvFactory("AdvOntology");
    
$res $servOnto->getConcept("User"$string);
    return 
$res[$field];
}
?>