Вопросы и ответы
Вебмастеру
PHP-шаблонизатор
В MaxSite CMS php-шаблонизатор используется для небольших вставок PHP в HTML или простой текст, например в формах или опциях.
Шаблонизатор представляет собой две служебные конструкции.
{{ 'текст' }}
Будет преобразовано в
<?= 'текст' ?>
что в свою очередь эквивалентно
<?php echo 'текст'; ?>
Данная конструкция {{ }}
используется там, где нужно вывести переменную, функцию или строку сразу в браузер.
Вторая конструкция позволяет выполнять произвольный PHP-код.
{% echo 'текст'; %}
будет заменено на
<?php echo 'текст'; ?>
То есть код просто обрамляется php-тэгами.
Работа PHP-шаблонизатора обеспечивается функциями mso_tmpl_prepare()
и mso_tmpl()
.
Выполнение произвольного текста:
$text_tmpl = '{{ getinfo("siteurl") }}'; // исходный код (например из опции) eval(mso_tmpl_prepare($text_tmpl)); // выполнение
Выполнение текстового файла (по его содержимому):
eval(mso_tmpl('my.html')); // выполнение файла
Обратите внимание, что сами функции шаблонизатора не производят выполнение кода, а только преобразуют его до корректного php-кода. Само выполнение обеспечивается за счёт стандартной функции eval()
.