Тег — запись вида {% tagname %}
совершает некую операцию в том месте, где он установлен.
- Теги вызова шаблонов
- Функциональные теги
1. Тег вызова шаблона
Тег вызова шаблона подставляет вместо себя HTML-код из файла того шаблона , который за ним закреплен. Цель установки такого тега не только сократить количество кода и упростить привязку функциональных элементов к сайту, но и сократить само количество шаблонов, т. к. тег вызова может вызывать не только жестко определенный ему шаблон, но и вызывать шаблон в зависимости от URL, на котором используется этот шаблон.
1.2. Тег вызова шаблона URL-независимый
Независимый тег вызывает в шаблон жестко заданный ему кусок html-кода и подставляет его вместо себя. Например, мы имеем независимый тег {% ArticlesBasesGlobal %}, который вызывает список всех категорий модуля Статьи, используя при этом шаблон tag_articles_baselist_global.html. Это значит, что в любом шаблоне и по любому URL — там где мы поставим тег {% ArticlesBasesGlobal %} он будет всегда выводить код шаблона tag_articles_baselist_global.html и отображать в установленном месте список категорий модуля Статьи.
Т.к. независимый тег может показать только строго заданный контент, то иногда требуется указать ID категории, список объектов которой мы хотим вывести, пример {% ArticlesObjectsGlobal base_id=10 %} — покажет список объектов категории с ID 10.
1.2. Тег вызова шаблона URL-зависимый
Зависимый тег это “умный тег”. Он может подставлять вместо себя разные шаблоны, и его выбор сделанный в пользу того или иного шаблона будет зависеть от пути где этот шаблон участвует в генерации страницы. Например, мы имеем зависимый тег {% Articles %} который выводит в зависимости от URL один из трех контентных шаблонов модуля Статьи. Это значит, что на месте установки этого тега появится либо шаблон с выводом списка категорий, либо список объектов одной категории, либо один объект. Какой именно из них, зависит от URL, где применяется этот шаблон.
Если по URL располагается один объект, Статья, то {% Articles %} подставит шаблон контента, назначенный этой Статье, по умолчанию это будет tag_articles_view.html
Если по URL располагается категория, например “Статьи о животных”, то {% Articles %} подставит шаблон контента, который назначен именно этой категории, по умолчанию — tag_articles_list.html
Если по URL располагается корневая страница модуля со списком всех его категорий, то {% Articles %} подставит шаблон контента, который назначен корневой странице модуля, по умолчанию — tag_articles_baselist.html
2. Функциональные теги
Функциональные теги ничего вместо себя не подставляют, но участвуют в процессе формирования шаблона. Например, требуется вывести 100 статей подряд, с переключением страниц, т.е. по 10 на каждой странице. В шаблоне контента с постраничным выводом какого-либо списка существуют два ключевых элемента: объект списка (объект цикла) и вывод переключателя между страницами вывода (паджинатора). Для того, чтобы в шаблоне назначить объект списка мы устанавливаем тегом начало цикла и его конец, — всё что находится внутри этих меток будет циклично повторяться. После завершения цикла выводится переключатель страниц.
Также есть тег условия (IF) и другие теги. На странице правок шаблона существуют подсказки по тегам.
Пример использования функциональных тегов
Показана часть кода шаблона контента постраничного вывода списка статей
В итоге мы получим...
Вывод статей. При наполнении условие картинки было соблюдено. Условие даты - не соблюдено, дата не показывается.