Вивід даних

    Завдання шаблонів

    За замовчуванням вважається, що в параметрах шаблону передано ім'я чанка. Але якщо ім'я чанка починається з символу @, то відбувається перевірка початкового слова в імені шаблону із заздалегідь зарезервованими правилами завантаження шаблонів. Усі наступні слова використовується в якості параметра до вибраного правилом.

    @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.