2012-10-09 4 views
1

J'ai un filtre exposé avec un champ déroulant des options de sélection qui recueille toutes les valeurs réelles dans ma vue actuelle. Malheureusement, il recueille également et affiche les champs vides dans ma vue.Supprimer les options vides dans les filtres exposés

J'ai essayé de créer un module qui gère cela, mais je n'arrive pas à mettre à jour mes filtres actuels. Aucune suggestion?

function remove_duplicated_publications_form_alter(&$form, &$form_state, $form_id) { 
    if($form_id == 'views_exposed_form'){ 
    foreach($form as $tmp){ 
     if ($tmp["#type"]=="select"){ 
     foreach($tmp["#options"] as $tjek){ 
      if ($tjek==NULL){ 
      unset ($tmp["#options"][$tjek]); 
      } 
     } 
     } 
    } 
    } 
} 

--- SOLUTION TROUVÉE !! --- J'avais besoin de désactiver le tableau $ form à la place. Le code suivant fonctionne:

function remove_duplicated_publications_form_alter(&$form) { 
    foreach($form['#info'] as $field){ 
    $field_id = $field['value']; 
    if ($form[$field_id]["#type"]=="select"){ 
     foreach($form[$field_id]["#options"] as $optionvalue){ 
     if ($optionvalue==NULL){ 
      unset ($form[$field_id]["#options"][$optionvalue]); 
     } 
     } 
    } 
    } 
} 

Répondre

Questions connexes