Добавление модификаторов Smarty

Цель - добавить модификатор, преобразовывающий первую букву предложения в нижний или верхний регистр.

Как вы знаете, в Smarty такого модификатора нет, значит его надо добавить.

Идем в файл /api/Design.php и в районе 59 строки после подобных модификаторов регистрируем и наши модификаторы, добавив строки:

$this->smarty->registerPlugin('modifier', 'lcfirst', array($this, 'lcfirst_modifier'));
$this->smarty->registerPlugin('modifier', 'ucfirst', array($this, 'ucfirst_modifier'));

Затем в самом конце этого файла, но ДО закрывающей скобки }

по аналогии с уже имеющимися, добавляем наши функции преобразования:

public function lcfirst_modifier($str)
{
 return mb_strtolower(mb_substr($str, 0, 1)).mb_substr($str, 1);
}

public function ucfirst_modifier($str)
{
 return mb_strtoupper(mb_substr($str, 0, 1)).mb_substr($str, 1);
}

Все, теперь в шаблонах дизайна нам доступны следующие модификаторы:

{$text|lcfirst} 

и

{$text|ucfirst}

преобразовывающие текст переменной $text в нижний и верхний регистр соответственно.

Аналогично вы можете добавить в Smarty любую PHP-функцию для преобразования переменных

UPD: обновлено 10.05.2023

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

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