hook form alter - views exposed filter

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour à tous,

Comment modifier un textfield en checkbox généré par Better exposed Filters d’une vue ?
Remarque le « textfield » est généré par une (« la relation reverse ») Content : Title

Voici la solution que j'ai mise en place, et ca ne fonctionne pas :
- la page technologie n'affiche est vide (plus de liste)
- pas de reaction si je coche sur les cases
- j'ai essaye en changer title par nid ...

Voir le fichier ci-joint pour une reproduire le cas rapidement si nescessaire... Merci

function monmodule_form_alter(&$form, &$form_state, $form_id) {

if ($form_id == 'views_exposed_form') {

    $view = $form_state['view'];
    if ($view->name == 'tec' && $view->current_display == 'page') {

        // Requete pour recuperer tous les noeuds utilisé ds exposed filter
        // !! affiche les noeuds des types de contenus technologie et cloud...
        // !! le formulaire passe d'un textfield à un checkboxes  
        // !! La vue a uniquement le type technologie
       
        // Only show published nodes as options for the exposed filter.
        $sql = "SELECT nid, title FROM {node} WHERE status = 1 AND type = 'technology_provider'  ORDER BY title ASC";
        $result = db_query($sql);
        $nodes = $result->fetchAll();
       
        // Assignation des valeurs du tableau d'options checkboxs
        $options = array();
        foreach ($nodes as $node) {
          $options[$node->title] = $node->title;
          //--drupal_set_message("node  : ". $node->nid); 
          //--drupal_set_message("node  : ". $node->title); 
          //--drupal_set_message("options : ". $options[$node->nid]);
          }
       
        // mise à jour du formulaire - 'textfield' -> 'checkboxes'
        //$form['#info']['filter-title']['label'] = t('Filtre'); 
        $form['title']['#type'] = 'checkboxes';
        $form['title']['#options'] = $options;
        $form['title']['#default_value'] = $options;
        //$form['title']['#title'] = t('Filtre');
   
    }     
  }
}

Merci d'avance si vous avez une solution.
Il faut que le filtre fonctionne de la meme manière qu'un exposed filler fait sur la vue avec un filtre sur une relation et check box ...

Fichier attachéTaille
Icône document Microsoft Office hook_form_alter_-_views_exposed_filter.doc.doc424.88 Ko
Forum : 
Version de Drupal :