Как управлять фильтром терминов представлений во время выполнения?


У меня есть представление D7, для которого мне нужно передавать фильтры во время выполнения, и я не могу использовать открытые фильтры. Я использую

$filter = $view_search_works->get_item($display_id, 'filter', 'filter_name_tid');
$filter['value'] = VALUE;
$view_search_works->set_item($display_id, 'filter', 'filter_name_tid', $filter);

Для фильтра, который я определил для термина таксономии.

Если я определяю фильтр с помощью "Является одним из" и выбираю все перечисленные термины таксономии, когда я передаю одно из перечисленных значений, он работает нормально.

(Большая) проблема заключается в том, что если я определяю новый термин (и это может произойти) и передаю его в представление, термин не распознается, а представление не работать.

Есть ли способ сказать "все термины таксономии" для фильтра? Если я не выберу термин при определении фильтра, я получу "В фильтре не найдено допустимых значений: имя".

 1
Author: Letharion, 2012-09-03

1 answers

Необходимо ли использовать "Фильтр"? Если вместо этого вы можете использовать "Контекстный фильтр", то это должно работать без необходимости указывать, какие термины разрешены.

Другим, гораздо более сложным вариантом было бы реализовать hook_entity_insert и обновить конфигурацию представлений на новых условиях.

 1
Author: Letharion, 2012-09-03 12:25:40