Ho diversi tipi di nodi, ognuno dei quali fa riferimento a diversi termini di tassonomia del vocabolario. Per la categoria che mostra uso il modulo taxonomy_display.
Ad esempio, abbiamo due categorie: stecche e palle da biliardo.
Stecche ha prezzo da, prezzo a e filtri di tipo legno. Ma le palle non hanno un filtro di tipo legno.
Quindi devo rimuovere il filtro del tipo di legno se taxonomy_term tid si riferiva al vocabolario delle palle da biliardo.
Pertanto, devo rimuovere uno dei tanti filtri esposti a livello di codice.
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]);
}
Il campo filtro viene rimosso correttamente, ma ho un avviso php:
Notice: Undefined index: field_wood_reference_tid in function views_handler_filter_term_node_tid->exposed_validate()
Inoltre provo a rimuovere il campo in hook_pre_execute (), ma con lo stesso risultato:
function modulename_views_pre_execute(&$view) {
$filter_field = 'filter_id';
unset($view->display_handler->handlers['filter'][$filter_field]);
unset($view->filter[$filter_field]);
}
Prova anche con il metodo override_option () come qui - http://groups.drupal.org/node/82219 , ma nessun risultato.
Eventuali suggerimenti? Aiuto per favore =)
Grazie a tutti per la risposta, ma non ho ancora una risposta. Forse qualcosa non è chiaro? = (
?filter_id=val
, le viste restituiscono un display vuoto o un errore di scelta illegale ...