Использование PHP-вставок в шаблонах Webasyst
Для реализации различных интересных идей есть смысл сделать акцент на PHP в качестве инструмента для решения поставленных задач. Он функционален и помогает вывести результат непосредственно во фронтенд.
Но вот простое внедрение PHP-скриптов в HTML-шаблоны в Webasyst не допускается, требуется внесение ряда изменений в работу самой CMS, о которых я сейчас и расскажу.
Все изменения мы будем вносить в Smatry, и перед началом работ нам необходимо узнать вашу версию Smatry.
1. Для этого подключитесь к вашему сайту по FTP и в файле README (в папке /wa-system/vendors/smarty3/) посмотрите версию Smatry.
В нашем случае – это версия 3.1.14
2. Затем качаем архив в конце статьи, распаковываем содержимое архива и отправляем файл SmartyBC.class.php из соответствующей версии в папку /wa-system/vendors/smarty3/ на вашем сервере.
3. Далее открываем файл waSmarty3View.class.php в папке /wa-system/view/ и заменяем строку:
require_once realpath(dirname(__FILE__).'/../').'/vendors/smarty3/Smarty.class.php';
на:
require_once realpath(dirname(__FILE__)."/../")."/vendors/smarty3/SmartyBC.class.php";
Здесь же заменяем:
$this->smarty = new Smarty();
на:
$this->smarty = new SmartyBC();
4. После чего открываем файл smarty_security.php в папке /wa-system/vendors/smarty3/sysplugins/, находим:
public $php_handling = Smarty::PHP_PASSTHRU;
и заменяем на:
public $php_handling = Smarty::PHP_ALLOW;
5. Не забываем сохранить все сделанные изменения и отправить их на сайт. И завершающим этапом будет очистка кэша. Для этого перейдите в панель управления вашим сайтом в раздел «Инсталлер», пункт «Настройки».
Для проверки корректности проделанной работы в шаблон вашего сайта вставьте:
<?php
echo "Hello, World!";
?>
Если на уже опубликованном сайте вы увидите сообщение «Hello, World!» – значит, вы все сделали правильно.
Обратите внимание! При обновлении версии движка все изменения могут пропасть и потребуется проделать всю работу вновь.