Создаю набор для типа контента и выставляю для него несколько условий фильтров. Эти несколько условий работают как "И". Если какой-то вариант, чтобы для определенных фильтров эти услови я работал как "ИЛИ".?
Пример. Есть объявление. В нем есть поле 1 и поле 2. Хочу вывести в наборе все объявления, в которых или поле 1 или поле 2 пустое.
Поправил файл /system/core/model.php
Находим public function applyDatasetFilters($dataset, $ignore_sorting = false){
там код
switch($filter['condition']){ // общие условия case 'eq': $this->filterEqual($filter['field'], $filter['value']); break;
switch($filter['condition']){ case 'fi': $this->filter($filter['value']); break; // общие условия case 'eq': $this->filterEqual($filter['field'], $filter['value']); break;
вместо кода
'eq' => '=', 'gt' => '>', 'lt' => '<', 'ge' => '≥', 'le' => '≤', 'nn' => LANG_FILTER_NOT_NULL, 'ni' => LANG_FILTER_IS_NULL ), 'eq' => '=', 'lk' => LANG_FILTER_LIKE, 'ln' => LANG_FILTER_NOT_LIKE, 'lb' => LANG_FILTER_LIKE_BEGIN, 'lf' => LANG_FILTER_LIKE_END, 'nn' => LANG_FILTER_NOT_NULL, 'ni' => LANG_FILTER_IS_NULL ), 'eq' => '=', 'gt' => '>', 'lt' => '<', 'ge' => '≥', 'le' => '≤', 'dy' => LANG_FILTER_DATE_YOUNGER, 'do' => LANG_FILTER_DATE_OLDER, 'nn' => LANG_FILTER_NOT_NULL, 'ni' => LANG_FILTER_IS_NULL
'eq' => '=', 'gt' => '>', 'lt' => '<', 'ge' => '≥', 'le' => '≤', 'nn' => LANG_FILTER_NOT_NULL, 'ni' => LANG_FILTER_IS_NULL, 'fi' => 'My condition' ), 'eq' => '=', 'lk' => LANG_FILTER_LIKE, 'ln' => LANG_FILTER_NOT_LIKE, 'lb' => LANG_FILTER_LIKE_BEGIN, 'lf' => LANG_FILTER_LIKE_END, 'nn' => LANG_FILTER_NOT_NULL, 'ni' => LANG_FILTER_IS_NULL, 'fi' => 'My condition' ), 'eq' => '=', 'gt' => '>', 'lt' => '<', 'ge' => '≥', 'le' => '≤', 'dy' => LANG_FILTER_DATE_YOUNGER, 'do' => LANG_FILTER_DATE_OLDER, 'nn' => LANG_FILTER_NOT_NULL, 'ni' => LANG_FILTER_IS_NULL, 'fi' => 'My condition'
Спасибо!
Сделал компонент, добавляющий этот функционал без правки системных файлов:
/blogs/zapiski-dinozavra/komponent-dlja-manipuljaci-filtraciei-i-sortirovkoi-v-datasetah.html
Эх, когда нибудь кармы наберу и тоже создам свой маленький блог на этом сайте.