среда, 23 января 2008 г.

MODx Специальные теги

Специальные теги


Для вывода динамических данных используются специальные теги.


Системные


[(site_name)] - название сайта
[(base_url)] или [(site_url)] - адрес сайта (http://www.modx-cms.ru)
[(modx_charset)] - используемая кодировка
[^qt^] - время на запросы к базе данных
[^q^] - запросов к базе данных
[^p^] - время на работу PHP скриптов
[^t^] - общее время на генерацию страницы
[^s^] - источник содержимого (база или кэш)


Стандартные


[*pagetitle*] - заголовок документа
[*longtitle*] - расширенный заголовок документа
[*description*] - описание документа
[*introtext*] - аннотация документа
[*content*] - содержимое документа
[*alias*] - псевдоним документа
[*id*] - идентификатор (номер) документа
[*pub_date*] - дата публикации дкоумента
[*unpub_date*] - дата завершения публикации
[*createdby*] - Идентификатор пользователя создавшего документ
[*createdon*] - Дата создания документа
[*editedby*] - Идентификатор пользователя редактировавшего документ
[*editedon*] - Дата редактирования документа
[~идентификатор~] - URL указанного документа


Дополнительные


[*type*] - вариант (документ, папка или ссылка)
[*contentType*] - тип содержимого (например, text/html)
[*published*] - опубликован ли документ (1|0)
[*parent*] - номер (ID) родительского документа
[*isfolder*] - является ли документа папкой (1|0)
[*richtext*] - используется ли при редактировании документа визуальный редактор
[*template*] - номер (ID) используемого шаблона для документа
[*menuindex*] - порядковый номер отображения в меню
[*searchable*] - доступен ли документ для поиска (1|0)
[*cacheable*] - Кэшируется ли документ (1|0)
[*deleted*] - Документ удален (1|0)
[*deletedby*] - Идентификатор пользователя удалившего документ
[*menutitle*] - Заголовок меню. Если не используется, то заголовок документа
[*donthit*] - Слежение за количеством посещений отключено (1|0)
[*haskeywords*] - Документ содержит ключевые слова (1|0)
[*hasmetatags*] - Документ имеет метатеги (1|0)
[*privateweb*] - Документ входит в частную группу пользовательских документов (1|0)
[*privatemgr*] - Документ входит в частную группу менеджерских документов (1|0)
[*content_dispo*] - Вариант выдачи содержимого (1 - для отображения | 0 - для скачивания)
[*hidemenu*] - Документ не отображается в меню (1|0)


Параметры TV, сниппеты и чанки


[*НазваниеПараметраTV*] - выводит значение параметра в документе.
{{НазваниеЧанка}} - возвращает содержимое чанка.
[[НазваниеСниппета]] - возвращает результат работы сниппета. Также можно передавать сниппету дополнительные параметры, перечисляя их при вызове - [[НазваниеСниппета? &параметр1=`значение1` &параметр2=`значение2` &параметрN=`значениеN`]
[+НазваниеПеременной+] - встречается в чанках, которые используются для обработки (Ditto, eForm и т.д.). После обработки вместо них вставляются значения. Таким образом, это тоже вроде мини-языка, но для сниппетов.


Нюансы


1) На самом деле есть два варианта вызова сниппета:
[[НазваниеСниппета]] - кэшируемый вызов сниппета
[!НазваниеСниппета]] - некэшируемый вызов сниппета

2) При использовании дополнительных параметров в сниппете нужно убедиться, что запись не разбивается переносом строки. Если это так, то сниппет откажется работать.


Где использовать


Все очень гармонично используется друг с другом.
В шаблонах можно использовать параметры TV, сниппеты и чанки.
В чанках можно вызывать сниппеты, параметры TV и другие чанки.
В сниппетах можно вызывать вообще все, но через PHP.
В конечном счете вам вернется итоговый результат обработки всех сниппетов/чанков/параметровTV.


Пример шаблона



<html>
<head>
<title>[(site_name)] | [*pagetitle*]</title>
<meta http-equiv="Content-Type" content="text/html; charset=[(modx_charset)]" />
<base href="[(site_url)]"></base>
<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="[(site_url)][~11~]" />
</head>
<body>

<div id="header">
<h1><a id="logo" href="[~[(site_start)]~]" title="[(site_name)]">[(site_name)]</a></h1>
<div id="ajaxmenu"> [[Wayfinder?startId=`0` &outerTpl=`mh.OuterTpl` &innerTpl=`mh.InnerTpl` &rowTpl=`mh.RowTpl` &innerRowTpl=`mh.InnerRowTpl` &firstClass=`first` &hereClass=``]] </div>
</div>

<h2>News:</h2>

[[Ditto? &startID=`2` &summarize=`2` &total=`20` &commentschunk=`Comments` &tpl=`nl_sidebar` &showarch=`0` &truncLen=`100` &truncSplit=`0`]]

<div id="content">
<h2>[*longtitle*]</h2>
[*#content*]
</div>

</body>
</html>

На эту информацию опирается все остальное.

Комментариев нет: