Submitted by Nobi on
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 |
---|---|
hook_form_alter_-_views_exposed_filter.doc.doc | 424.88 Ko |