- π«π·France jvieille
This did not work for me.
Here is my code:function views_filters_selective_search_fields($haystack, &$return){ foreach ($haystack as $k => $v) { if(!isset($pk)){ static $pk = ''; } if(!isset($pv)){ static $pv = ''; } if (is_array($v)) { $pv = $v; $pk = $k; views_filters_selective_search_fields($v, $return); } else { if($v === 'select'){ $options = $pv['#options']; if(empty($options)){ //$return[] = array($pk => $pv); $return[] = $pk; } } } } } function views_filters_selective_removeRecursive($haystack,$needle){ if(is_array($haystack)) { if(isset($haystack[$needle])){ unset($haystack[$needle]); } foreach ($haystack as $k=>$value) { $haystack[$k] = views_filters_selective_removeRecursive($value,$needle); } } return $haystack; } /** * Implements hook_form_views_exposed_form_alter(). */ function views_filters_selective_form_views_exposed_form_alter(&$form, &$form_state, $form_id) { views_filters_selective_search_fields($form, $return); $empty_filters = $return; if(is_array($empty_filters)){ $new = $form; foreach ($empty_filters as $v){ watchdog("v", print_r($v, true)); $new = views_filters_selective_removeRecursive($new,$v); } $form = $new; } }function views_filters_selective_search_fields($haystack, &$return){ foreach ($haystack as $k => $v) { if(!isset($pk)){ static $pk = ''; } if(!isset($pv)){ static $pv = ''; } if (is_array($v)) { $pv = $v; $pk = $k; views_filters_selective_search_fields($v, $return); } else { if($v === 'select'){ $options = $pv['#options']; if(empty($options)){ //$return[] = array($pk => $pv); $return[] = $pk; } } } } } function views_filters_selective_removeRecursive($haystack,$needle){ if(is_array($haystack)) { if(isset($haystack[$needle])){ unset($haystack[$needle]); } foreach ($haystack as $k=>$value) { $haystack[$k] = views_filters_selective_removeRecursive($value,$needle); } } return $haystack; } /** * Implements hook_form_views_exposed_form_alter(). */ function views_filters_selective_form_views_exposed_form_alter(&$form, &$form_state, $form_id) { views_filters_selective_search_fields($form, $return); $empty_filters = $return; if(is_array($empty_filters)){ $new = $form; foreach ($empty_filters as $v){ watchdog("v", print_r($v, true)); $new = views_filters_selective_removeRecursive($new,$v); } $form = $new; } }