Додатково

    multiTV: Додатково

    Застосування multiTV в Ditto multiTvFilter екстендер Ditto PHx модифікатори.

    PHx модифікатор

    Так як рядок JSON в multiTV починається з [[ і закінчується ]] (Примітка 1), ви не можете перевірити multiTV на порожнечу, тобто. [*multittvname:ne=``:then=`not empty`*].

    Але ви могли б використовувати в цьому випадку PHx модифікатори з папки phx-modifier. Перемістіть два файли з цієї папки в assets/plugins/phx/modifiers.

    Приклад використання:

    [+phx:multitvisempty=`tvname|docid`:then=`xxx`:else=`yyy`+]
    [+phx:multitvisnotempty=`tvname|docid`:then=`xxx`:else=`yyy`+]

    Якщо docid не встановлено, за замовчуванням використовується поточний документ.

    multiTvFilter екстендер Ditto

    Для фільтрації рядків, що відображаються Ditto скористайтеся екстендером multiTvFilter.

    ПараметрОпис
    multiTvFilterBy (обов'язковий параметр) ім'я змінної multiTV
    multiTvFilterOptions json-масив параметрів фільтра

    Можуть бути використані наступні параметри фільтра

    ПараметрОпис
    name ім'я поля multiTV, яке використовується для фільтрації
    type тип вмісту поля multiTV (можливі варіанти: date, text)
    value Значення поля multiTV для фільтрації
    mode режим фільтрації вмісту поля multiTV
    conjunction Логічний зв'язок з попереднім фільтром (AND/OR)

    Наступні режими можуть бути використані для поля типу text:

    Тип порівнянняОпис
    contains фільтрувати, якщо хоча б одне поле містить текст критерію
    allcontains фільтрувати, якщо всі поля містять текст критерію
    containsnot фільтрувати, якщо одне з полів не містить текст критерію
    allcontainsnot фільтрувати, якщо всі поля не містять текст критерію
    is фільтрувати якщо одне поле відповідає критерію
    allis фільтрувати якщо всі поля відповідають критерію
    isnot фільтрувати, якщо одне з полів не відповідає критерію
    allisnot фільтрувати, якщо всі поля не відповідають критерію

    Наступні режими можуть бути використані для поля типу date:

    Тип порівнянняОпис
    before фільтрувати, якщо одне поле менше критерію
    beforeall фільтрувати, якщо всі поля менше критерію
    equal фільтрувати, якщо одне поле дорівнює критерію
    equalall фільтрувати, якщо всі поля рівні критерію
    after фільтрувати, якщо одне поле більше критерію
    afterall фільтрувати, якщо всі поля більші критерію

    Приклади

    Показати всі дочірні документи контейнерів 3, 4 і 5, у яких змінна шаблона multiTV event в стовпці title не містить Important

    [[Ditto?
    &parents=`3,4,5`
    &display=`all`
    &tpl=`...`
    &extenders=`@FILE assets/tvs/multitv/dittoExtender/multitvfilter.extender.inc.php`
    &multiTvFilterBy=`event`
    &multiTvFilterOptions=`[{"name":"title","type":"text","value":"Important","mode":"contains"}]`
    ]]

    Якщо ви хочете фільтрувати за кількома значеннями multiTV, додайте ще один масив в multiTvFilterOptions. У цьому прикладі відобразяться всі дочірні документи контейнерів 3, 4, і 5 у яких змінна шаблону multiTV event в стовпці title не містить Importantі всі стовпці location відповідають Outdoor.

    [[Ditto?
    &parents=`3,4,5`
    &display=`all`
    &tpl=`...`
    &extenders=`@FILE assets/tvs/multitv/dittoExtender/multitvfilter.extender.inc.php`
    &multiTvFilterBy=`event,event`
    &multiTvFilterOptions=`[{"name":"title","type":"text","value":"Important","mode":"contains"},{"name":"location","type":"text","value":"Outdoor","mode":"allisnot","conjunction":"OR"}]`
    ]]

    Оновлення на новий формат даних

    Версия 1.4.11 multiTV використовує новий формат даних (імена стовпців зберігаються у вигляді ключ - значення). Змінна і сніпет підтримують старий і новий формати, так що вам не доведеться оновлювати multiTVs. Але вам це потрібно, якщо ви захочете додати / видалити стовпці в multiTVs. Викличте сніпет в документі MODX наступним чином:

    [!updateTV? &tvNames=`yourMultiTVname1,yourMultiTVname2`!]

    Параметры

    ПараметрОписЗначення за замовчуванням
    tvNames (обов'язково) розділений комами список імен змінних, які містять дані multiTV -