exposed filter Text-Feld durch Select-Feld überschreiben

Exposed Filter lassen sich in Views hervorragend nutzen um die Ergebnisse eines Views zu filtern.
Nur hat man - sofern die Daten im Node-Type nur als normales Textfeld vorliegen - auch nur ein Textfeld zum filtern zur Auswahl. Dies ist nicht immer sinnvoll - gerade wenn es sich hierbei bspw. um Orte handelt, die durch den Benutzer ausgewählt werden können.

In der template.php oder in einem Modul lässt sich das Text-Feld wie folgt in ein Select-Feld umwandeln.
Im Beispiel wird hier nur ein Array übergeben - diese Werte müssten dann natürlich über eine Datenbankabfrage ausgelesen werden.

<?php
function MODULENAME_form_views_exposed_form_alter(&$form, $form_state) {
$form['field_name']['#type'] = 'select';
$form['field_name']['#multiple'] = false;
$form['field_name']['#default_value'] = array("" => t("All"));
$form['field_name']['#options'] = array("" => t("All"), "valueoption1" => t("Option 1"), "valueoption2" => t("Option 2"));
$form['field_name']['#attributes'] = array('size'=>1);
}
?>

Blog-Kategorien: