Разработка сайтов на UMI.CMS
Знать UMI.CMS в совершенстве невозможно.
Даже сами разработчики знают о ней не все...

UMi

Ursa Minor

Виды tpl-шаблонов и включение php-кода в шаблон

Шаблоны в UMI.CMS есть двух видов (рассматриваем только tpl): шаблоны страниц и шаблоны модулей.

Первые - это все, что лежит  в  корне папки /tpls/content/ Они отвечают за вывод блоков информации на странице и с ними все понятно с первого взгляда.

А  вот за сами блоки отвечают шаблоны модулей и там есть несколько интересных моментов. Выглядят они так:

<?php

$FORMS = array();

$FORMS = <<<END
некий код

END;

?>

Строка, ограниченная маркером END - это т.н. here-документ, появившийся в php4 способ записи многострочных констант.

Ограничитель END может быть любым алфавитно-цифровым идентификатором, не встречающимся в тексте here-документа в виде отдельной строки. Синтаксис накладывает два ограничения на here-документы:

  • после <<<END и до конца строки не должны идти никакие непробельные символы
  • завершающая строка END; должна оканчиваться точкой с запятой, после которой до конца строки не должно быть никаких инструкций, а начинаться она должна с первого символа строки.

 

А теперь обещанное включение php.

Если в тексте here-документа встречается некая переменная, то она будет интерполирована

<?php

$lang = cmsController::getInstance()->getCurrentLang()->getPrefix();

$FORMS = array();

$FORMS = <<<END

Текущий язык {$lang}
Выведет: Текщий язык ru

END;

?>

Эту особенность можно использовать для включения в шаблон результатов простейших операций.
Например, определять с какой страницы пришел пользователь и выводить "Вы ввели неправильное имя или пароль..." только в случае соответствующего http_refferer
В общем и целом - это средство следует применять весьма ограниченно, т.к. это затрудняет читабельность кода, и засоряет глобальную область. Рекомендуется всегда использовать кастомные макросы

Новости

30.10.2016

Обновлено описание макроса для вывода всех элементов справочника UMI.CMS с учетом версии 14.

 

21.07.2015

Памятка по обновлению до debian 8.1. Приятно вкусить все плюшки PHP 5.6

11.11.2014

Как выполнить SQL-запрос из bash-скрипта. Памятка

11.11.2014

Как отследить нагрузку сайта на сервер.

06.11.2014

Заготовка для галереи изображений с прокруткой. Не знаю, когда дойдут руки довести ее до вида плагина, поэтому открываю как есть. Можно доработать.

05.11.2014

Выкладываю как заготовку свой слайдер изображений на mootools

Все обновления