Расширение класса фильтрации

Привет!
Хочу немного расширить класс фильтрации в mFilter2.
У меня есть текстовое tv поле video, в которое пишется ссылка на youtube ролик. Хочу в фильтре выводить два чекбокса «Да» и «Нет». Если выбираем «Да», то остаются товары с видео, если «Нет», то без видео.
Прочитав про расширение класса фильтрации сделал по аналогии:

public function buildYesNoFilter(array $values) {
        if (count($values) < 2 && empty($this->config['showEmptyFilters'])) {
			return array();
		}

		$results = array();
		foreach ($values as $value => $ids) {
			$title = (is_null($value))
				? $this->modx->lexicon('mse2_filter_boolean_no')
				: $this->modx->lexicon('mse2_filter_boolean_yes');
				
			$value = is_null($value)? '0' : '1';
			if (!isset($results[$value])) {
				$results[$value] = array(
					'title' => $title
					,'value' => $value
					,'type' => 'yesno'
					,'resource' => array()
				);
			}
			foreach ($ids as $id) {
				$results[$value]['resources'][] = $id;
			}
		}

		ksort($results);
		return $results;
	}
// Собственно фильтрация, берём за основу filterNumber
	public function filterYesNo(array $requested, array $values, array $ids) {
		$matched = array();

		$tmp = array_flip($ids);
		foreach ($values as $number => $resources) {
			if (is_null($number)) {
				foreach ($resources as $id) {
					if (isset($tmp[$id])) {
						$matched[] = $id;
					}
				}	
			}
			elseif (!is_null($number)) {
				foreach ($resources as $id) {
					if (isset($tmp[$id])) {
						$matched[] = $id;
					}
				}	
			}
		}

		return $matched;
	}
В вызове фильтра делаю так:
&filters=`tv|video:yesno`
При этом у меня появляется только чекбокс с надписью «Да»… а с «Нет» не появляется…
Фильтр работает и по клику показывает 153 товара со ссылкой на видео.
Подскажите, что я не правильно написал? Кто-то наверняка уже делал так…
Заранее спасибо!)
Андрей Сухомозгий
03 марта 2015, 22:00
modx.pro
819
0

Комментарии: 1

Василий Наумкин
04 марта 2015, 06:39
0
foreach ($values as $value => $ids) {
	$title = (is_null($value))
Что-то я сильно сомневаюсь, что null может быть ключом массива.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1