У меня есть несколько типов узлов, каждый из которых относится к разным словарным терминам таксономии. Для показа категорий я использую модуль taxonomy_display.
Например, у нас есть две категории: киев и бильярдных шаров.
Cues имеет цену от, цена и фильтры типа древесины. Но у шаров нет деревянного фильтра.
Так что мне нужно удалить фильтр типа дерева, если tid taxonomy_term ссылается на словарь бильярдных шаров.
Таким образом, мне нужно удалить один из множества выставленных фильтров программно.
function modulename_views_pre_view(&$view, &$display_id, &$args) {
// Some custom logic wich field_info_instances checking ...
$filter_field = 'filter_id';
// Removes from everywhere where i can find filter or filters properties
unset($view->display[$view->current_display]->display_options['filters'][$filter_field]);
unset($view->display[$view->current_display]->handler->options['filters'][$filter_field]);
unset($view->display_handler->display->display_options['filters'][$filter_field]);
unset($view->display_handler->options['filters'][$filter_field]);
}
Поле фильтра удаляется успешно, но я получил уведомление php:
Notice: Undefined index: field_wood_reference_tid in function views_handler_filter_term_node_tid->exposed_validate()
Также я пытаюсь удалить поле в hook_pre_execute (), но с тем же результатом:
function modulename_views_pre_execute(&$view) {
$filter_field = 'filter_id';
unset($view->display_handler->handlers['filter'][$filter_field]);
unset($view->filter[$filter_field]);
}
Также попробуйте использовать метод override_option (), как здесь - http://groups.drupal.org/node/82219 , но без результата.
Какие-либо предложения? Пожалуйста помогите =)
Спасибо всем за ответ, но у меня до сих пор нет ответа. Может, что-то не понятно? знак равно
?filter_id=val
, представления возвращают пустое отображение или ошибку неправильного выбора ...