Saya punya beberapa tipe simpul yang masing-masing direferensikan ke perbendaharaan istilah taksonomi yang berbeda. Untuk kategori yang ditampilkan, saya menggunakan modul taxonomy_display.
Sebagai contoh, kami memiliki dua kategori: isyarat dan bola bilyar.
Isyarat memiliki harga dari, harga hingga dan jenis filter kayu. Tetapi bola tidak memiliki filter jenis kayu.
Jadi saya perlu menghapus jenis kayu filter jika taxonomy_term tid direferensikan ke kosa kata bola bilyar.
Jadi, saya perlu menghapus salah satu dari banyak filter yang terpapar secara terprogram.
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]);
}
Bidang filter berhasil dihapus, tetapi saya mendapat pemberitahuan php:
Notice: Undefined index: field_wood_reference_tid in function views_handler_filter_term_node_tid->exposed_validate()
Saya juga mencoba untuk menghapus bidang di hook_pre_execute (), tetapi dengan hasil yang sama:
function modulename_views_pre_execute(&$view) {
$filter_field = 'filter_id';
unset($view->display_handler->handlers['filter'][$filter_field]);
unset($view->filter[$filter_field]);
}
Coba juga dengan metode override_option () seperti di sini - http://groups.drupal.org/node/82219 , tetapi tidak ada hasil sama sekali.
Ada saran? Tolong bantu =)
Terima kasih untuk semua orang atas balasannya tetapi saya masih belum memiliki jawaban. Mungkin ada sesuatu yang tidak jelas? = (
?filter_id=val, tampilan mengembalikan tampilan kosong atau kesalahan pilihan ilegal ...