DocLister: Вывод данных
- Дополнения
- DocLister
- Вывод данных
DocLister: Вывод данных
Задание шаблонов
По умоланию считается, что в параметрах шаблона передано имя чанка. Но если имя чанка начинается с символа @, то происходит сверка начального слова в имени шаблона с заранее зарезервироваными правилами загрузки шаблонов. Все последующие слова используется в качестве параметра к выбранному правилу.
@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 если текущая страница – первая
Плейсхолдеры устанавливаемые экстендером 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+], [+full_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>`
&tplId0, &tplId1, &tplId2, ..., &tplIdN
Шаблон для оформления блока с документами под номером 1, 2 и т.д...
Значение по умолчанию берется из значения параметра tpl.
&tplOdd, &tplEven
Шаблон для оформления блока с документами под четным/нечетным номером.
Значение по умолчанию берется из значения параметра tpl.
&tplFirst
Шаблон для оформления первого блока с документами в списке. Синоним параметра tplId1, но имеет больший приоритет.
Возможные значения - имя шаблона указанное по правилам задания шаблонов в DocLister. Если не задано, то совпадает с шаблоном tpl.
Значение по умолчанию - пусто.
&tplLast
Шаблон для оформления последнего блока с документами в списке.
Возможные значения - имя шаблона указанное по правилам задания шаблонов в DocLister. Если не задано, то совпадает с шаблоном tpl.
Значение по умолчанию - пусто.
&tplCurrent
Шаблон для оформления блока с текущим документом в списке документов.
Возможные значения - имя шаблона указанное по правилам задания шаблонов в 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.
Вывод в плейсхолдеры
&contentPlaceholder
Установка значений документов в персонализованные плейсхолдеры.
Возможные значения - 0, 1. Если значение параметра равно 1, то DocLister создает плейсхолдеры вида [+id.item[x]+]. Где x это порядковый номер документа в списке, а id это значение параметра id (см. описание параметра id).
Значение по умолчанию - 0
API-режим
&api
Используется для формирования выдачи в формате JSON.
Возможные значения - 0, 1 или список полей выбираемых документов.
Значение по умолчанию - 0.
&JSONformat
По какому принципу формировать JSON-ответ.
Возможные значения - old, new. В формате old ответ выглядит в виде обычного массива. В формате new ответ заворачивается в rows секцию + добавляется примесь total в которой указано общее число учавствующих в выборке
Значение по умолчанию - old.