Вывод данных

Задание шаблонов

По умоланию считается, что в параметрах шаблона передано имя чанка. Но если имя чанка начинается с символа @, то происходит сверка начального слова в имени шаблона с заранее зарезервироваными правилами загрузки шаблонов. Все последующие слова используется в качестве параметра к выбранному правилу.

@FILE Загрузка шаблона из html файла расположенного в папке или подпапках assets/templates/

@CHUNK Обычная загрузка шаблона из чанка

@TPL, @CODE Значение параметра используется в роли inline шаблона

@DOCUMENT, @DOC Шаблон берется из content поля указанного документа

@PLH, @PLACEHOLDER Шаблон загружается из глобального плейсхолдера MODX

@CFG, @CONFIG, @OPTIONS Шаблон берется из глобальных настроек текущей установки MODX Evolution

Стоит заметить, что даже если начальный символ был @ и после обработки всех правил шаблон все равно оказался пустым, то происходит попытка обнаружить чанк по полному имени шаблона

Плейсхолдеры

Плейсхолдеры в DocLister:

  • плейсхолдер таблицы, имя такого плейсхолдера совпадает с названием колонки в таблице;
  • виртуальный плейсхолдер, который стал доступен после запуска экстендера или каких-то вычислений внутри контроллера;
  • глобальный плейсхолдер, который доступен из вне шаблонов передаваемых в сниппет (как правило имеет префикс dl и может быть переопределен при помощи параметров sysKey или id).

Экстендер в DocLister - это вспомогательный класс для каких-либо обработок, не имеет ничего общего с экстендерами Ditto.

Плейсхолдеры таблицы

Если указан контроллер site_content или любой другой его расширяющий, то по умолчанию используется таблица site_content. В случае с контроллером onetable имя таблицы определяется параметром table. Таким образом, получить полный список плейсхолдеров можно открыв таблицу mysql, например, через phpmyadmin и подсмотрев какие в этой таблице имеются поля.

Виртуальный плейсхолдер

Плейсхолдеры устанавливаемые экстендером paginate

__[+параметр_id.pages+]__ Пагинация

__[+параметр_id.totalPages+]__ Общее число страниц

__[+параметр_id.isstop+]__ 1 если текущая страница — последная

__[+параметр_idisstart+]__ 1 если текущая страница — первая

__[+параметр_id.from+] Номер документа на странице от (Пример: товаров 1__-8 из 16)

__[+параметр_id.to+] Номер документа на странице до (Пример: товаров 1-8__ из 16)

__[+параметр_id.count+] Общее количество документов (Пример: товаров 1-8 из 16__)

Плейсхолдеры устанавливаемые экстендером jotcount

Экстендер загружается, если при вызове сниппета задан параметр &jotcount.

[+jotcount+] Число комментариев из сниппета JOT

Плейсхолдеры устанавливаемые экстендером tv

[+tv.имяТВпараметра+] Значение ТВ параметра

По умолчанию ко всем ТВ параметрам добавляется префикс tv, но от него можно избавиться или переопределить параметром tvPrefix.

Плейсхолдеры устанавливаемые экстендером e

Экстендер загружается, если при вызове сниппета задан параметр &е=имена полей через запятую

[+e.имяПоля+] Экранированное значение поля.

Плейсхолдеры устанавливаемые экстендером summary

[+summary+] Аннотация к странице

Плейсхолдеры устанавливаемые экстендером user

Экстендер необходимо загрузить вручную, указав его имя в параметре &extender. Также должны быть заданы параметры:

  • usertype - возможные значения: manager, mgr, web. Определяет из каких таблиц брать данные пользователей;
  • userFields - названия колонок через запятую, в которых указан id пользователя, например createdby, publishedby.

[+user.id.НазваниеКолонки+] ID пользователя

[+user.username.НазваниеКолонки+] Логин пользователя

[+user.fullname.НазваниеКолонки+] Полное имя пользователя

[+user.role.НазваниеКолонки+] ID роли пользователя

[+user.email.НазваниеКолонки+] e-mail

[+user.phone.НазваниеКолонки+] Телефон

[+user.mobilephone.НазваниеКолонки+] Мобильный телефон

[+user.blocked.НазваниеКолонки+] Статус блокировки

[+user.blockeduntil.НазваниеКолонки+] До какого UNIX-времени пользователь будет заблокирован

[+user.blockedafter.НазваниеКолонки+] После какого UNIX-времени пользователь будет заблокирован

[+user.logincount.НазваниеКолонки+] Общее число авторизаций

[+user.lastlogin.НазваниеКолонки+] UNIX-время последней авторизации

[+user.thislogin.НазваниеКолонки+] UNIX-время текущей авторизации

[+user.failedlogincount.НазваниеКолонки+] Число неудачных попыток авторизоваться

[+user.lastlogin.НазваниеКолонки+] UNIX-время последней авторизации

[+user.dob.НазваниеКолонки+] Дата рождения

[+user.gender.НазваниеКолонки+] Пол

[+user.country.НазваниеКолонки+] Страна

[+user.state.НазваниеКолонки+] Регион

[+user.zip.НазваниеКолонки+] Почтовый индекс

[+user.fax.НазваниеКолонки+] Факс

[+user.photo.НазваниеКолонки+] Фотография

[+user.comment.НазваниеКолонки+]

Плейсхолдеры устанавливаемые в контроллерах site_content

[+title+] Название документа для списков. Если menutitle пуст, то используется pagetitle

[+iteration+], __[+ЗначениеПараметраsysKey.full_iteration+]__ Порядковый номер элемента в списке; порядковый номер в списке с учетом пагинации.

Примечание: для контроллера site_content и для контроллера shopkeeper плейсхолдер [+iteration+] выглядит как указано выше - [+iteration+] без префикса, а для контроллера onetable - как [+ЗначениеПараметраsysKey.iteration+] с префиксом. Префикс ЗначениеПараметраsysKey по умолчанию равен dl, то есть для onetable этот плейсхолдер по умолчанию - [+dl.iteration+].

[+url+] Ссылка на документ

[+date+] дата публикации документа сформированая по правилам указаным в параметре dateFormat (по умолчанию %d.%b.%y %H:%M). Помимо этого учитывается server_offset_time в настройках движка.

[+ЗначениеПараметраsysKey.active+] Флаг определяющий, что обрабатываемый документ совпадает и документ на котором был вызван сниппет это одно и тоже (1 - если правда, 0 если нет)

[+ЗначениеПараметраsysKey.class+] Классы которые могут быть автоматически присвоены документу (first, last, current, odd, even)

[+ЗначениеПараметраsysKey.wrap+] HTML код списка подготовленный для вывода пользователю (используется только для шаблона ownerTPL)

Параметры для установки плейсхолдеров

sysKey

Префикс для системных плейсхолдеров.

Возможные значения - любая строка. На выходе получается плейсхолдер с именем [+sysKey.placeholder+], где sysKey это значение данного параметра

Значение по умолчанию - dl

id

Префикс для локальных плейсхолдеров.

Возможные значения - любая строка. Если id указано, то на выходе получается [+id.placeholder+]. Где id это и есть переданое значение. В случае если id не задано, то перед именем плейсхолдера точка не ставится.

Значение по умолчанию - пусто.

Параметры вывода в шаблоны

ownerTPL

Шаблон в который оборачивается список результатов. Если подходящих результатов не обнаружено, то по умолчанию результат с шаблоном noneTPL тоже оборачивается в этот шаблон. За подробностями обращайтесь к описанию параметра noneWrapOuter.

Возможные значения - имя шаблона указанное по правилам задания шаблонов в DocLister.

Значение по умолчанию - пусто.

Пример:

&ownerTPL=`@CODE:
<ul class="pages-list">
    [+dl.wrap+]
</ul>
`

tpl

Шаблон.

Возможные значения - имя шаблона указанное по правилам задания шаблонов в DocLister. Значение параметра может быть изменено из prepare-сниппета c помощью свойства $_DocLister->renderTPL.

Значение по умолчанию - определяется в контроллере.

Пример:

&tpl=`@CODE:
<li>
    <img src="[+tv.image+]" alt="[+e.pagetitle+]">
    <a href="[+url+]">[+title+] ([+id+])</a>
</li>
`

tplId1, tplId2, ..., tplIdN

Шаблон для оформления документа под номером 1, 2 и т.д., где номер - это номер итерации начиная с 1.

Значение по умолчанию берется из значения параметра tpl.

Примечание: Обратите внимание, Id в названиях шаблонов не должно вводить вас в заблуждение, на самом деле номер - это не Id документа, а его номер по порядку в выводе (номер итерации).

tplOdd, tplEven

Шаблон для оформления четного/нечетного документа.

Значение по умолчанию берется из значения параметра tpl.

tplFirst

Шаблон для оформления первого документа в списке. Синоним параметра tplId1, но имеет больший приоритет.

Возможные значения - имя шаблона указанное по правилам задания шаблонов в DocLister. Если не задано, то совпадает с шаблоном tpl.

Значение по умолчанию - пусто.

tplLast

Шаблон для оформления последнего документа в списке.

Возможные значения - имя шаблона указанное по правилам задания шаблонов в DocLister. Если не задано, то совпадает с шаблоном tpl.

Значение по умолчанию - пусто.

tplСurrent

Шаблон для оформления текущего документа в списке документов.

Возможные значения - имя шаблона указанное по правилам задания шаблонов в DocLister. Если не задано, то совпадает с шаблоном tpl.

Значение по умолчанию - пусто.

noneTPL

Шаблон с уведомлением о том, что по заданным критериям ничего не обнаружено.

Возможные значения - имя шаблона указанное по правилам задания шаблонов в DocLister.

Значение по умолчанию - пусто.

noneWrapOuter

Оборачивать ли ответ noneTPL в шаблон ownerTPL. Параметр актуален только в том случае, если нет документов для построения списка и задан ownerTPL.

Возможные значения - 1 или 0.

Значение по умолчанию - 1.

Пагинация

paginate

Вывод данных с пагинацией. Смотрите плейсхолдеры устанавливаемые экстендером paginate.

Возможные значения:

  • offset - пагинация в стиле Ditto;
  • pages - пагинация с прострелами.

Значение по умолчанию - pages.

TplFirstP

Шаблон для вставки ссылки "первая страница".

Возможные значения - имя шаблона указанное по правилам задания шаблонов в DocLister.

Значение по умолчанию: пусто.

TplLastP

Шаблон для вставки ссылки "последняя страница".

Возможные значения - имя шаблона указанное по правилам задания шаблонов в DocLister.

Значение по умолчанию: пусто.

TplNextP

Шаблон для вставки ссылки "следующая страница". Возможные значения - имя шаблона указанное по правилам задания шаблонов в DocLister.

Значение по умолчанию:

@CODE: <a href="[+link+]">' . $this->DocLister->getMsg('paginate.next', 'Next') . ' ></a>

Плейсхолдеров для подстановки данных из языкового пакета пока нет.

TplPrevP

Шаблон для вставки ссылки "предыдущая страница".

Возможные значения - имя шаблона указанное по правилам задания шаблонов в DocLister.

Значение по умолчанию:

@CODE: <a href="[+link+]">< ' . $this->DocLister->getMsg('paginate.prev', 'Prev') . '</a>

Плейсхолдеров для подстановки данных из языкового пакета пока нет.

TplPage

Шаблон для вставки номера страницы в пагинатор.

Возможные значения - имя шаблона указанное по правилам задания шаблонов в DocLister.

Значение по умолчанию:

@CODE: <a href="[+link+]" class="page">[+num+]</a>

TplCurrentPage

Шаблон оформления текущей страницы в пагинаторе

Возможные значения - имя шаблона указанное по правилам задания шаблонов в DocLister.

Значение по умолчанию:

@CODE: <b class="current">[+num+]</b>

TplWrapPaginate

Шаблон контейнер для обертки страниц пагинации.

Возможные значения - имя шаблона указанное по правилам задания шаблонов в DocLister.

Значение по умолчанию:

@CODE: <div class="[+class+]">[+wrap+]</div>

pageLimit

Число страниц отображаемое в пагинаторе.

Возможные значения - целое число больше ноля.

Значение по умолчанию - 1.

pageAdjacents

Максимальное число страниц слева и справа относительно текущей страницы.

Возможные значения - целое число больше ноля.

Значение по умолчанию - 4.

PaginateClass

Класс для контейнера в который будут вложены страницы пагинации.

Возможные значения - любая строка сформированная по правилам для подстановки в HTML аттрибут тегов class.

Значение по умолчанию - paginate.

PrevNextAlwaysShow

Всегда показывать "следующая страница" и "предыдущая страница".

Возможные значения - 1 или 0.

Значение по умолчанию - 0.

TplFirstI

Шаблон для вставки ссылки "первая страница", используется совместно с PrevNextAlwaysShow.

Возможные значения - имя шаблона указанное по правилам задания шаблонов в DocLister.

Значение по умолчанию: пусто.

TplLastI

Шаблон для вставки ссылки "последняя страница", используется совместно с PrevNextAlwaysShow.

Возможные значения - имя шаблона указанное по правилам задания шаблонов в DocLister.

Значение по умолчанию: пусто.

TplNextI

Шаблон для вставки неактивной ссылки "следующая страница", используется совместно с PrevNextAlwaysShow.

Возможные значения - имя шаблона указанное по правилам задания шаблонов в DocLister.

Значение по умолчанию:

@CODE: [%paginate.next%] >

TplPrevI

Шаблон для вставки неактивной ссылки "предыдущая страница", используется совместно с PrevNextAlwaysShow.

Возможные значения - имя шаблона указанное по правилам задания шаблонов в DocLister.

Значение по умолчанию:

@CODE: < [%paginate.prev%]

TplDotsPage

Шаблон прострела.

Возможные значения - имя шаблона указанное по правилам задания шаблонов в DocLister.

Значение по умолчанию:

@CODE: ...

noRedirect

Запрещает переадресацию при запросе несуществующей страницы.

Возможные значения - 0 или 1.

Значение по умолчанию - 0.

paginationMeta

Вывод метатегов prev и next в head сайта.

<link rel="prev" href="[+prev+]">
<link rel="next" href="[+next+]'">

Возможные значения - 0 или 1.

Значение по умолчанию - 0.

Вывод в плейсхолдеры

contentPlaceholder

Установка значений документов в персонализованные плейсхолдеры.

Возможные значения - 0, 1. Если значение параметра равно 1, то DocLister создает плейсхолдеры вида [+id.item[x]+]. Где x это порядковый номер документа в списке, а id это значение параметра id (см. описание параметра id).

Значение по умолчанию - 0

paginationMetaPlaceholder

Возможные значения - 0 или 1. Если значение параметра равно 1, то результат выполнения параметра paginationMeta попадает не в шапку, а в глобальный плейсхолдер [+paginationMeta+].

Значение по умолчанию - 0

Разделитель между шаблонами

outputSeparator

Установка разделителя, который будет выводиться между значениями, выводимыми в шаблоне tpl.

Возможные значения - любая строка.

Значение по умолчанию - пусто.

Пример

Используется в поле "Возможные значения" TV-параметра

@EVAL $snippet_name = 'DocLister';$arrparams = array('id' => 'brands_select','parents' => '1171','depth' => '0','tvPrefix' => '','tvList' => '','tpl'=>'brands_select_tpl','orderBy'=>'pagetitle ASC', 'total' => 'all', 'noneWrapOuter' => '0', 'dateFormat'=>'%d.%m.%Y','outputSeparator'=>'||');return $modx->runSnippet($snippet_name,$arrparams);

API-режим

api

Используется для формирования выдачи в формате JSON.

Возможные значения - 0, 1 или список полей выбираемых документов.

Значение по умолчанию - 0.

JSONformat

По какому принципу формировать JSON-ответ.

Возможные значения - old, new. В формате old ответ выглядит в виде обычного массива. В формате new ответ заворачивается в rows секцию + добавляется примесь total в которой указано общее число учавствующих в выборке

Значение по умолчанию - old.