Forums / National / Russian / Как в TPL вставить код PHP?

smit
#1 2016-11-28 13:42

Нужно вставить PHP код в TPL файл. Я так понял, там не так все просто. 
Как это делается?

Macik
#2 2016-11-29 22:05

Код в чистом виде в TPL Файлы вставить нельзя. Это сделано по соображениям безопасности и чтобы максимально отделить логику оформления с программной логикой.

Можно вызывать отдельные (заранее определенные) функции, или встроенные функции PHP. Подробнее об обратных вызовах из шаблонов читаем в документации.

Если код в несколько строк или со сложной логикой — лучше писать плагин и вставлять в шаблон соотв. тег или callback-вызов.

Если очень сложно писать плагин — можно добавить свою функцию в `functions.custom.php` и включить (в config.php) опцию загрузки доп.файла:

$cfg['customfuncs'] = TRUE;

 

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Leshkens
#3 2016-11-29 22:31

Добавлю, что файл functions.custom.php должен находиться (или быть создан) в папке system smiley

Kort
#4 2016-11-30 08:36

Еще более простой способ -- добавить функцию в php-файл темы (например, nemesis.php) и вызвать ее из шаблона с параметром или без. Например, в nemesis.php добавляем функцию подсчета пользователей:

if (!function_exists(get_user_count))
{  
	function get_user_count()
	{
		global $db, $db_users;	
		return $db->countRows($db_users);
	}
}

... и вызываем ее в шаблоне:

<p>Зарегистрированных пользователей: {PHP|get_user_count()}</p>

 

SED.by - создание сайтов, разработка плагинов и тем для Котонти