Логика работы макроса content в tpl-шаблонах

Материал из Umicms
Версия от 07:54, 29 августа 2011; VITL' (обсуждение | вклад) (Новая страница: «Есть некоторая не очевидная особенность работы макроса: <pre> %content% </pre> в шаблонах страниц, …»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

Есть некоторая не очевидная особенность работы макроса:

%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)