Шаблонизатор

Шаблонизатор упрощает работу с кодом

Для удобства работы с исходным кодом страниц используется шаблонизатор Simpla!, который представляет собой упрощенную версию известного шаблонизатора Smarty.

Пример использования:

Переменные:

{$var} - переменная
{$ar.title} - элемент массива
{$var|red} - переменная с модификатором (подсвечивает красным цветом)
{assign var="name" value="Ivan"} - создает переменную name со значением Ivan

Цикл foreach

{foreach key="k" value="v" from=$array}
{$k}:{$v}
{/foreach}

Конструкция if else

{if empty($v)}
Пустая переменная
{else}
Переменная есть: {$v}
{/if}

Функции

img

Функция вывода изображения. С помощью этой функции можно вывести изображения произвольного размера, указав нужный размер в параметрах. При выводе проверяется наличие изображения в заданном размере, а если его нет в кэше, то оно создается и сохраняется.

Изображения по умолчанию сохраняются в папке /upload/images/. Можно один из размеров указать = 0, тогда этот размер будет пропорционально рассчитан в зависимости от другого.

Важно, путь к файлу нужно указывать относительно пути от корня сайта, без домена. Например, используя в массиве значение $file.11.path

{img url=$file.11.path width=300 height=200}

Параметры, передаваемые в функцию
url - путь до изображения
width - ширина
height - высота
folder - папка, если надо изменить стандартную (по умолчанию используется /upload/images/)
rewrite - если требуется переписать изображение в кэше
quality - от 0 до 100, по умолчанию 60
webp_quality - качество изображения webp, по умолчанию 70
assign - название получаемого массива (по умолчанию $img)

Получаемый массив данных
src - ссылка на изображение от корня сайта (без домена)
path - полный путь к файлу изображения
width - ширина
height - высота
mime - миме-тип
sizes - описание размера
webp_path - путь до изображения webp
webp_src - ссылка на изображение от корня сайта

Для работы функции требуется последняя версия файла /module/list_photos.php, библиотека обработки изображений /module/resize/, а также функция шаблонизатора function.img.php.

В случае возникновения сбоев в работе - проверить активирована ли функция imagewebp() в серверной версии PHP. Если трудность с удалением-обновлением файлов, то проверить под какими правами создаются файлы. Должны создаваться под правами пользователя.

lang

Функцией lang можно выводить в шаблоне значения из подключаемых языковых файлов. Простейший пример, вывод элемента массива, можно указать от 1 до 3-х элементов, перечислив их в шаблоне - key1, key2, key3.

{lang key1="admin" key2="user" key3="edit"}

Для склонения существительного с числительным нужно создать переменную, указав формы слова с числами 1, 4 и 5. В языковом файле пишем:

$lang['comment'] = array('Отзыв', 'Отзыва', 'Отзывов');

В шаблоне вывод осуществляется так:

{lang word="comment" qty=$page.list_comments|@count}

Другие функции:

array_pop
array_shift
counter
cycle
in_array
math
popup

Примеры:
{counter start=0 skip=2 print=false assign="cnt"}
{ cycle values="#eeeeee,#d0d0d0" }
{ math equation="x + y" x=4.4444 y=5.0000 format="%.2f" assign="summ"}

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

red

Подсвечивает красным цветом переменную, добавляя <span></span>


upper

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


lower

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


in_array

Проверяет наличие переменной в массиве и возвращает в переменную значение.

{ in_array array=$array match=$id returnvalue="CHECKED" assign="ch"}
Если в массиве $array этого примера будет найдено значение $id, то переменная $ch пример значение CHECKED. В противном случае она будет пуста.


months и month

Выводит название месяца буквами. Можно указать язык, задать регистр выводимых букв - строчные, прописные или только первая буква заглавная (lower, upper или ucfirst). Модификатор months выводит месяц в родительном падеже, а month - в именительном. Так, {2|months:"ru"} выведет - февраля, а {2|month:"ru"} - февраль.

{$str|months:"ru" }
{$str|months:"ru":"ucfirst" }
{$str|month:"ru":"upper" }


capitalize

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


date и date_format

Преобразует дату в заданный вид.

Можно использовать текущую дату для форматирования, например, { $simpla[NOW]|date:"Y" } - текущий год.


truncate

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

{$str|truncate }
{$str|truncate:50:"..." }
{$str|truncate:50:"...":true }


lastkey

Возвращает последний ключ массива. Удобно использовать для поиска в массиве последнего элемента. Пример использования: {$array|@lastkey}


chunk

Форматирует строку $str, разбивая ее на фрагменты $length и вставляя между ними символ $delimiter {$str:4:"-"}


color

Задает цвет {$var|color:'#cccccc;'}


compare

Сравнивает переменную со значением и возвращает первое, если равно и второе, если нет  - {$value.type|compare:"int":"OK":"---"}. Второе можно опустить, тогда ничего не возвращает.


replace

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


filesize

Форматирует число. 1024 -> 1Kb; 1059000 -> 1,5Mb и т.д.


numformat

Аналог функции number_format, выводит отформатированное число. Дополнительно можно указать 3 значения:

  1. Число знаков после запятой. По умолчанию - 0
  2. Разделитель дробной части. По умолчанию - . (точка)
  3. Разделитель тысяч. По умолчанию - " " (пробел)

{"1234567,99"|numformat:"2":".":" "} или {$str|numformat:"2":",":" "}

Покажет 1 234 567

rur

Вид рубля

euro

Вид евро

usd

Вид доллара США