Как заставить mFilter2 работать наоборт?
        У товара есть текстовое TV-поле, в котором перечислены параметры через разделитель. В данном случае это список дат вида 2018-07-01||2018-07-02||2018-07-06...
Вывожу через mFilter2 стандартными чекбоксами. Как сделать, чтобы при выборе фильтра, отображались все товары, кроме тех, в которых присутствует выбранная дата?
Сейчас всё работает по умолчанию, выбираю 2018-07-02 — отфильтровываются товары в которых присутствует эта дата. А нужно наоборот.
Расширил стандартный класс по инструкции:
Что нужно изменить, чтобы выполнить эту задачу?
    
    
                                                                                
            Вывожу через mFilter2 стандартными чекбоксами. Как сделать, чтобы при выборе фильтра, отображались все товары, кроме тех, в которых присутствует выбранная дата?
Сейчас всё работает по умолчанию, выбираю 2018-07-02 — отфильтровываются товары в которых присутствует эта дата. А нужно наоборот.
Расширил стандартный класс по инструкции:
<?php
  class custom_filters extends mse2FiltersHandler {
	
  	public function buildInvertFilter(array $values, $name = '') {
  		if (count($values) < 2 && empty($this->config['showEmptyFilters'])) {
  			return array();
  		}
  
  		$results = array();
  		foreach ($values as $value => $ids) {
  			if ($value !== '') {
  				$results[$value] = array(
  					'title' => $value,
  					'value' => $value,
  					'type' => 'default',
  					'resources' => $ids
  				);
  			}
  		}
  
  		return $this->sortFilters($results, 'default', array('name' => $name));
  	}
  	
  	public function filterInvert(array $requested, array $values, array $ids) {
  		$matched = array();
  
  		$tmp = array_flip($ids);
  		foreach ($requested as $value) {
  			$value = str_replace('"', '"', $value);
  			if (isset($values[$value])) {
  				$resources = $values[$value];
  				foreach ($resources as $id) {
  					if (isset($tmp[$id])) {
  						$matched[] = $id;
  					}
  				}
  			}
  		}
  
  		return $matched;
  	}
  }Что нужно изменить, чтобы выполнить эту задачу?
Комментарии: 1
                Заменил 
                    return $matched;на return array_diff($ids, $matched);Вроде работает            
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.