Модификаторы Smarty - закрытие html тегов и численное склонение существительных

Модификаторы Smarty - закрытие html тегов и численное склонение существительных

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

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

Идеальным решением в данном случае, является создание модификатора для Smarty, который решит проблему открытых html тегов и закроет их. Я не стал изобретать велосипед и взял готовый код, под лицензией GPL, немного изменил его и создал модификатор.

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

Все модификаторы, начинаются с имени файла - modifier, далее через точку идет название самого модификатора. Модификатор для закрытия тегов имеет имя modifier. close_tags. php. Располагать модификаторы нужно в каталоге: plugins директории с файлами Smarty.

Далее Вы можете скачать необходимый Вам модификатор и использовать его как Вам угодно.

Модификатор закрывающий теги.

Использование: {$var|truncate:300:" ...":false|close_tags} или {$var|close_tags}

Скачать: modifier. close_tags. php

Модификатор для склонения существительных

Использование: {$var|plural:'яблоко':'яблока':'яблоков'}

Скачать: modifier. plural. php

На сегодня это все, чем я хотел поделиться. Если есть вопросы, задавайте их в комментариях. Желаю всем приятного кодирования.


Карта сайта


Информационный сайт Webavtocat.ru