Views custom filter [РЕШЕНО]

Главные вкладки

Аватар пользователя billomania billomania 22 сентября 2015 в 11:31

Имеется представление с фильтром. Через кастомный модуль пишу:
if ($_GET['test'] == '0') {
$view->build_info['query']->condition('field_test_value', '0');
}
if ($_GET['test'] == '1') {
$view->build_info['query']->condition('field_test_value', '1');
}
Предварительно добавил это поле field_test в фильтры представления.
Они работают!
Но вот незадача. Это поле field_test оформлено не во всех нодах.
И если я поставлю оператор фильтра "Is not empty (NOT NULL)" по умолчанию, то у меня выведутся только ноды заполненные этим полем.
А мне нужно чтобы по умолчанию он игнорировал этот фильтр. Как быть?

Комментарии

Аватар пользователя billomania billomania 25 сентября 2015 в 11:00

Решение найдено. Создаем кастомный модуль, а поле в фильтр добавлять не нужно.
// Получаем значени выбранного поля из get
$test = $_GET['test'];
if(isset($test)) {
// Присоединяем к запросу таблицу field_data_field_tattoo
$join_test = new views_join();
$join_test->construct('field_data_field_test', 'node', 'nid', 'entity_id');

$query->add_relationship('field_data_field_test', $join_test, 'node');

// Добавляем в секцию WHERE фильтр, в котором значение поля должно
// равняться значению поля из get
$query->add_where(0, 'field_data_field_test.field_test_value', $test);
}