Логика работы макроса content в tpl-шаблонах — различия между версиями
VITL' (обсуждение | вклад) (Новая страница: «Есть некоторая не очевидная особенность работы макроса: <pre> %content% </pre> в шаблонах страниц, …») |
(нет различий)
|
Версия 07:54, 29 августа 2011
Есть некоторая не очевидная особенность работы макроса:
%content%
в шаблонах страниц, расположенных в папке tpls/content/ . Логика макрос такова, что в зависимости от типа страницы, которая открывается посетителем сайта, макрос %content% запустит один из методов модуля. Рассмотрим некоторые примеры соответствия, для их понимания необходимо открыть страницу настройки модуля "Шаблоны данных", и файлы class.php в папках модулей classes/modules/name_module/ . Допустим, пользователь открыл страницу типа "Ленты новостей". На странице настроек модуля "Шаблоны данных" /admin/data/config/ , видим такие данные:
Название = "Ленты новостей", Модуль = news, Метод = rubric.
Тогда в файле: classes/modules/news/class.php, находим метод rubric который возвращает:
return $this->lastlents($element_id, $template) . $this->lastlist($element_id, $template);
т.е. происходит сложение результатов выполнения двух методов:
%news lastlents()% и %news lastlist()%
описание которых вы можете найти в документации разработчика help-dev.umi-cms.ru
Если посетитель сайта открыл страницу типа "Новости", то это будет:
Название = "Ленты новостей", Модуль = news, Метод = item
Метод item, в файле classes/modules/news/class.php, возвращает:
return $this->view($element_id);
это макрос %news view()%.
Аналогичным образом, итоговые данные для модуля Каталог:
"Разделы каталога" - %catalog category()% "Объекты каталога" - %catalog viewObject()% ... и т.д.
По умолчанию, макросы используют шаблоны default.tpl, если в папке шаблонов модуля присутствует шаблон default.en.tpl, то в английской версии сайта будет использовать шаблон: default.en.tpl. При использовании tpl-шаблонизатора, в вопросах мультидоменности поможет информация в данной статье Мультидоменность – замена макроса content (tpl)