Фільтри

    Фільтри

    У комплекті наступні фільтри:

    • content - для фільтрації по полях таблиці site_content, можна замінити параметром addWhereList;
    • tv - для фільтрації по TV-параметрам;
    • tvd - для фільтрації по TV-параметрам з урахуванням значень за замовчуванням;
    • private - для фільтрації документів з урахуванням прав доступу.

    Побудова фільтра

    Приклад

    OR(AND(filter:field:operator:value;filter2:field:operator:value);(...))

    Оператори

    =, eq, is

    Так само.

    !=, no, isnot, isnotnull

    Не дорівнює.

    >, gt

    Більше.

    <, lt

    Менше.

    <=, elt

    Менше або дорівнює.

    >=, egt

    Більше чи рівно.

    %, like

    Містить рядок.

    like-r

    Починається рядком.

    like-l

    Закінчується рядком.

    regexp

    Вибірка з використанням регулярних виразів REGEXP.

    against

    Повнотекстовий пошук.

    Приклад

    [[DocLister? &filters=`AND(content:pagetitle,description,content,introtext:against:шукана стрічка)`]]

    З цього прикладу передбачається, що в базі даних є FULLTEXT індекс по полях pagetitle,description,content,introtext

    containsOne

    Пошук будь-якого слова або його частини в тексті за допомогою LIKE.

    Приклад:

    [[DocLister? &filters=`AND(content:content:containsOne:коли, настане, світ)`]]

    Буде побудований SQL запит виду

    (content LIKE '%когда%' OR content LIKE '%настане%' OR content LIKE '%світ%')

    Тобто в кінцевому рахунку з бази будуть обрані документи в тексті яких використовуються слова "коли" або "настане" або "світ". З прикладу виклику видно, що слова розділені комою. Ця поведінка можна перевизначитися параметром _filterdelimiter.

    in

    Входить в безліч.

    notin

    Не входить в безліч.

    Приклад виклику з фільтрацією за ціною від 0 до 300:

    [[DocLister? &filters=`AND(tv:price:gt:0;tv:price:lt:300)`]]

    А тепер те ж саме, тільки з урахуванням значень за замовчуванням

    [[DocLister? &filters=`AND(tvd:price:gt:0;tvd:price:lt:300)`]]