Smarty (модификаторы, подсказки и пр.)

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

upper, lower, capitalize

Описание: Возвращает строку, в которой все буквенные символы переведены в верхний или нижний регистр или заглавные соответственно 

{$text|upper}

in_array

Описание: Проверяет наличие переменной в массиве

{if in_array($module, array('ProductView', 'ProductsView', 'CartView', 'OrderView', 'BrowsedView', 'CompareView', 'WishlistView'))}

truncate

Описание: Обрезает строку. Можно задать длину строки для обрезания, чем заканчивается обрезанная часть и обрезать ли слова.

Пример:

{$articleTitle}
{$articleTitle|truncate}
{$articleTitle|truncate:30}
{$articleTitle|truncate:30:""}
{$articleTitle|truncate:30:"---"}
{$articleTitle|truncate:30:"":true}
{$articleTitle|truncate:30:"...":true}
{$articleTitle|truncate:30:'..':true:true}

Результат: 

Two Sisters Reunite after Eighteen Years at Checkout Counter.
Two Sisters Reunite after Eighteen Years at Checkout Counter.
Two Sisters Reunite after...
Two Sisters Reunite after
Two Sisters Reunite after---
Two Sisters Reunite after Eigh
Two Sisters Reunite after E...
Two Sisters Re..ckout Counter.

replace

Описание: Передает для замены строку или массив (значения через запятую). Если на что менять не задано, то просто удаляет совпадения

Данный пример удалит пробелы:

{$text|replace:" ":""}

strip_tags

Описание: Удаляет теги html разметки

Пример:

{$articleTitle}
{$articleTitle|strip_tags}

Результат:

Blind Woman Gets <font face="helvetica">New Kidney</font> from Dad she Hasn't Seen in <b>years</b>.
Blind Woman Gets New Kidney from Dad she Hasn't Seen in years .

Еще больше полезностей из Smarty:

Как закомментировать?

{* комментарий *}

Как экранировать код в котором встречаются {}

{literal}...{/literal}

Как посчитать количество элементов в массиве

{$group.items|count}

Как создать внутреннюю переменную smarty

{$var = "..."}

Экранирование

{$articleTitle|escape}{$articleTitle|escape:'html'} {* экранирует & " ' < > *}

{$articleTitle|escape:'htmlall'} {* экранирует ВСЕ HTML-сущности *}

{$articleTitle|escape:'url'}

{$articleTitle|escape:'quotes'}

Текущая дата

{$smarty.now|date_format:"%d.%m.%Y %H:%M"}

Использование условий if

{if isset($name) && !empty($name)} ... {elseif $name == $foo} ... {/if}

{if is_array($foo) && count($foo) > 0) {* do a foreach loop *} {/if}

Текущая дата

{$smarty.now|date_format:"%d.%m.%Y %H:%M"}

Как организовать цикл for

Например нужен такой цикл: for($i=1;$i<10;$i++)

{section name=foo loop=9}

{$smarty.section.foo.iteration}

{/section}

Как в цикле foreach определить первый и последний элемент:

{foreach name=foo from=$array}

{if $smarty.foreach.foo.first} этот первый {/if}

{$smarty.foreach.foo|@debug_print_var}

{if $smarty.foreach.foo.last} этот последний {/if}

{/foreach}

Преобразовать строку в массив $widgets_ids по одинаковому разделителю ",":

{$widgets_ids = ","|explode:"1,2,3,4,5,6,7,8"}

{foreach $widgets_ids as $widget_id}

{$widget_id}

{/foreach}

Кодирование-декодирование URL:

{$url|urldecode}

Результат: utm_term=паста

{$url|urlencode}

Результат: utm_term=%D0%BF%D0%B0%D1%81%D1%82%D0%B0

Отрезать все, что после символа &:

{$text|regex_replace:'/&.*/':''}

Проверка вхождения в $text подстроки $sub:

{if $text|strpos:$sub !== false}

Рандомное число:

{math equation='rand(10,100)'}

Получение GET-параметра:

Например из URL типа site.ru?utm_text=текст

{$smarty.get.utm_text}

Документация Smarty:

Smarty (модификаторы, подсказки и пр.)

Еще нет своего сайта? Создайте интернет-магазин на платформе 5CMS - Все для продаж уже внутри!

Рекомендуем прочитать