Теги

Тег — запись вида {% tagname %} совершает некую операцию в том месте, где он установлен.

По своему назначению существует несколько видов тегов:
  1. Теги вызова шаблонов
  2. Функциональные теги

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) и другие теги. На странице правок шаблона существуют подсказки по тегам.

Пример использования функциональных тегов

Показана часть кода шаблона контента постраничного вывода списка статей

В итоге мы получим...

Вывод статей. При наполнении условие картинки было соблюдено. Условие даты - не соблюдено, дата не показывается.

Остались вопросы?