]]>
]]>
Рейтинг@Mail.ru

Дополнительные параметры (template variable)

Материал из Веб программирование.

Перейти к: навигация, поиск

Любой, кто начнет разбираться в MODx столкнется с новыми терминами. Все довольно просто запоминается. А чтобы не приходилось запоминать, что и как пишется, мы все отметим здесь.

Здесь мы отметим небольшие моменты по MODx, которые периодически можно подсматривать.


Содержание

Терминология

Шаблон – содержит общую верстку страницы со структурой и дизайном. Также в нем определяются места для вывода динамического содержимого. Для каждого документа можно выбрать свой шаблон.

Параметры (TV) – дополнительные параметры, которые подключаются к шаблону. Параметры могут быть разных типов (текст, ссылка, файл, дата, число и т.д.).

Чанк – маленький шаблон, который может использоваться как просто для вывода какого-то содержимого (телефона на всех страницах), так и для обработки (шаблон отправляемого письма eForm, шаблон каталога выводимого Ditto и т.д.). Таким образом, вид (представление) информации отделяется от места обработки и легко управляется. Обычно содержит части шаблонов. HTML

Сниппет – код для обработки информации. Анализируют полученную информацию (например, сообщение пользователя) и предоставляют результат (например, отправляют сообщение по почте, а пользователю показывают сообщение о результате). Сниппеты формируют меню (Wayfinder), выводят списки статей с разбиением на страницы (Ditto), строят формы (eForm). Для вывода используют Чанки. Обычно содержит функции, исполняемый код. PHP

Плагин – код, который запускается при наступлении какого-то события. Например, подсвечивает искомые слова (Search Highlighting) при переходе со страницы поиска. Событий много и их рассмотрение стоит отдельной статьи.

Дополнительные параметры

Для вывода динамических данных используются специальные теги. Их можно использовать в шаблонах, чанках, в сниппетах (с ограничением некоторым), в параметрах TV. Но в основном используют в шаблонах и чанках.


Системные

  • [(site_name)] – название сайта
  • [(base_url)] - относительны адрес сайта (/)
  • [(site_url)] – абсолютный адрес сайта (http://atworld.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]] </div>
</div>
 
<h2>News:</h2>
 
[[News?folderID=2]]
 
<div id="content">
<h2>[*longtitle*]</h2>
[*#content*]
</div>
 
</body>
</html>
]]>
Google+
]]>
Личные инструменты
Хочешь еще цитату? Программы должны быть написаны так, чтобы их могли читать люди, и только иногда так, чтобы их могли выполнять машины.Абельсон и Сассман
веб-программирование
Просмотры
чтим

Deprecated: Function set_magic_quotes_runtime() is deprecated in /var/www/webproger/data/www/webproger.ru/1c6a72389c0fd92079ac7ae7cd356173/sape.php on line 218 Deprecated: Function set_magic_quotes_runtime() is deprecated in /var/www/webproger/data/www/webproger.ru/1c6a72389c0fd92079ac7ae7cd356173/sape.php on line 224

]]>
Rambler's Top100
]]>
]]>
]]>