[document]
type = manual
name = "Теги для шаблонов"
description = 'Тег в шаблонах темы это выражение вида $object.property, где object это объект, а property его свойство. Пример $options.url, где options - глобальный объект, всегда доступный в шаблонах, а url - свойство, значение которого адрес сайта без слеша (/) в конце адреса, включая http. Всегда доступны следующие глобальные объекты:

  • $options множество настроек сайта, например адрес, название, описание сайта
  • $template много свойств для работы с шаблонами
  • $context объект генерирующий контент. Имеет всегда разный тип, в зависимости от страницы. Мало используется

Как правило используются $options и $template. На странице одиночного поста или списка постов появляется объект $post, доступный и используемый в шаблонах. $post появляется внутри секции content и в нее ее недоступен (точнее доступен и после секции, но ориентироваться на это не следует). Для шаблона доступны все публичные свойства этих объектов и полный список всех свойств этих объектов необходимо смотреть на страницах описывающий класс этих объектов. Следовательно нужно почитать про свойства следующих классов:

  • toptions
  • ttemplate
  • tpost
  • tmenu

Здесь же можно коротко и частично описать некоторые свойства этих классов. Начну с toptions

  • url адрес сайта, основа для всех адресов страниц
  • files адрес для адресов файлов, например javascript файлов, картинок
  • name название сайта
  • description описание сайта
  • keywords ключевые слова для сайта
  • q один символ ? или &, в зависимости от адреса сайта, используется в качестве первого разделителя для параметров get
  • language язык сайта, например ru, en, ua
  • timezone часовой пояс
  • dateformat формат даты
  • perpage количество постов на одной странице
  • version версия дистрибутива

Очевидно, что даже перечисленные свойства не используются в шаблонах. Наиболее употребительными свойствами являются url, files, name.

Следующий класс для краткого обзора будет ttemplate. Когда описываются свойства, то имеется в виду тема запрашиваемой страницы. Тема страницы может отличаться от темы выбранной как общая тема для всего сайта. Вот его некоторые свойства

  • url адрес темы
  • path файловый путь на сервере к файлам темы
  • title заголовок страницы. Формируется из свойства title объекта генерирующего контент (например пост)
  • menu список меню
  • sitebar сайтбар
  • theme имя темы выбранной в админке
  • context запрашиваемый объект, это тот же самый объект, что и $urlmap.context
  • footer подпись для подвала
  • icon иконка страницы
  • keywords ключевые слова, берутся у текущего объекта context, если пустая строка, то берется значение $options.keywords
  • description описание, симметрично keywords
  • head дополнительные строки в секции head, например подключение javascript для комментариев
  • content контентная часть страницы, в шаблонах не используется. Получает контент от объекта context

Тоже понятно, что часть свойств не используется в шаблонах. Часто используются следующие свойства: title, url, keywords, description, head, footer. Свойства content, menu в шаблонах не используются (точнее используются их значение для генерации конечного html). Существует возможность добавлять новые теги для $template, эта возможность реализуется в плагинах и предназначена для тех случаев, когда требуется генерировать свой собственный контент не на основании шаблонов темы. Детали этого находятся в описании класса ttags.

Много свойств есть у класса tpost, и большинство из них используется в шаблонах. Вот краткий перечень свойств:

  • id уникальный номер поста
  • idurl уникальный номер адреса (урла) поста
  • parent уникальный id родительского поста, как правило =0
  • author уникальный id автора поста
  • revision номер ревизии поста
  • icon уникальный id иконки
  • url адрес поста, без адреса сайта
  • link адрес поста, включая адрес сайта
  • title заголовок поста
  • title2 альтернативный заголовок поста
  • filtered полный текст поста, текст уже отфильтрованный, предназначен для шаблонов
  • excerpt анонс поста
  • rss соответственно контент для RSS ленты
  • rawcontent сырой, то есть неотфильтрованный контент
  • description описание поста
  • moretitle текст для ссылки Далее
  • morelink ссылка далее поста, шаблон ссылки берется из темы
  • pagescount количество страниц контента, если контент разбит на страницы
  • countpages максимум от количества страниц контента и страниц комментариев
  • commentpages количество страниц комментариев
  • lastcommenturl адрес последнего комментария, если комментарии на страницах, то последняя страница
  • rsscomments адрес RSS комментариев к этому посту
  • posted дата в формате unix timestamp
  • pubdate дата в формате для http заголовков и RSS
  • sqldate дата в формате для sql запросов
  • date дата в текущем формате, формат вычисляется из иерархии форматов дат
  • excerptdate дата в формате для анонса постов (если задано, иначе вычисляется из иерархии форматов)
  • excerptcategories рубрики в html формате, шаблон берется из темы секции анонса
  • excerpttags метки в html формате, шаблон берется из темы секции анонса
  • categorieslinks рубрики в html формате, шаблон берется из темы секции полного поста
  • tagslinks метки в html формате, шаблон берется из темы секции полного оста
  • tagnames строка, где через запятую все метки поста
  • catnames строка, где через запятую все рубрики поста
  • head строка для секции head страницы, включает в себя ссылки на RSS комментариев, javascript
  • iconurl адрес иконки
  • iconlink адрес иконки
  • filelist список фалов поста, шаблон списка берется из темы
  • subscriberss ссылка для подписки на RSS комментариев, шаблон берется из темы
  • prevnext ссылки на следующий и предыдущий пост, шаблон берется из темы
  • commentslink ссылка на комментарии, включает в себя количество комментариев
  • templatecomments список комментариев и форма комментирования, шаблон берется из темы

Свойства, текст которых берется из темы не следует вставлять в тему, эти свойства скорее предназначены для технических целей, за некоторым исключением. Исключение относится к ссылкам на категории и метки внутри поста, у которых существует иерархия шаблонов.

Одна из идей тегов в шаблонах - это то, что теги могут иметь собственный шаблон с другими тегами в шаблоне. Получаются вложенные шаблоны другими словами дерево шаблонов.'