Расширение функционала движка

Всё, связанное с программной частью системы, правка модулей, вопросы по php и mysql

Расширение функционала движка

Postby Сергей Маслов » 28 Aug 2019, 09:35

Здравствуйте!
Хотел немного расширить функционал движка, например, добавить свои переменные или функции без модификации ядра.
Но нигде не нашел ответа. В документации только как добавлять при выводе ссылки. Но это не совсем то.
Хочу, например, добавить проверку наличия файла на сервере.
Включение модуля PHP в шаблоне не вариант. Smarty все-таки тормозная штука и обращаться к PHP через Smarty не комильфо. Проще же напрямую...
Но как?
Сергей Маслов
 
Posts: 29
Joined: 14 May 2017, 13:03
Location: Саранск

Re: Расширение функционала движка

Postby Сергей Маслов » 28 Aug 2019, 11:49

Не дождался ответа от поддержки, хотя на support@illusionweb.org после обращения сказали, что бы разместил и дал им ссылку.
Пришлось въезжать самому, т.к. никакой документации по расширению функционала разработчик не опубликовал.
Итак.
Для того что бы добавить функции или переменные нужные вам в шаблонах необходимо:

1. Создать файл скрипта модификатора Smarty на PHP с любым именем (например, mysmarty.php и т.д.) и положить в любую удобную для вас папку сайта (например, Smarty или includes/compile и т.д.)
2. В файле прописать ваш модификатор для Smarty:
function my_fun_name($param){
// здесь код на PHP
return $var;
}
$smarty->register_modifier("my_fun", "my_fun_name");

где - my_fun_name - имя функции для получения модификатора
my_fun - имя модификатора в Smarty
$param - параметры в вашу функцию из Smarty
$var - возвращаемое значение в Smarty
register_modifier - регистрация модификатора в Smarty

3. Создать файл скрипта PHP с любым именем (например, myfunc.php и т.д.) и положить в папку commands сайта
4. В файле прописать:
include(FULLPATH.'{ваш путь}/mymodifiers.php');
$smarty -> assign('my_var', $my_var);

где - {ваш путь} - это путь к скрипту модификатора Smarty
$smarty -> assign - добавление ваших переменных в движок.

5. Теперь у вас при загрузке сайта в шаблонах будут доступны ваш модификатор my_fun и переменная my_var, которые вы сможете использовать по своему усмотрению :)

Вот собственно и все!
Сергей Маслов
 
Posts: 29
Joined: 14 May 2017, 13:03
Location: Саранск

Re: Расширение функционала движка

Postby Anatoly » 18 Sep 2019, 17:21

Создать функцию в commands/имя_файла.inc и вызвать её в шаблоне.

Например:
Создадим файл commands/helper.inc с содержимым
<?
function my_func($text){
return $text;
}
?>
В шаблоне вызываем функцию
{%assign var='text' value='что то передадим в функцию'%}
{%$text|my_func%}

А какие-то данные через assign соответственно.
Anatoly
 
Posts: 86
Joined: 12 Apr 2014, 14:05

Re: Расширение функционала движка

Postby Сергей Маслов » 18 Sep 2019, 21:31

Спасибо. Проще, чем я сам дошел :)
Сергей Маслов
 
Posts: 29
Joined: 14 May 2017, 13:03
Location: Саранск


Return to Программная часть скрипта

Who is online

Users browsing this forum: No registered users and 6 guests

cron