I tried to convert a text field filter for title into a select list filtered by content type using hook form alter:
function myhook_form_alter(&$form, &$form_state, $form_id) {
if($form_id == 'views_exposed_form'){
// load nodes filtered by content type - news
$nodes = node_load_multiple(array(), array('type' => 'news'));
// Build an array
$dropdown_array = array('' => '--Any--');
foreach ($nodes as $node) {
$key = $node->title;
$value = $node->title;
$dropdown_array[$key] = $value;
}
// Alter form
$form['title'] = array(
'#type' => 'select',
'#default_value' => '1',
'#options' => $dropdown_array,
);
}//endif
}
The code above works well. Now I wonder is there a better, shorter, more efficient or proper API to implement ? I'm a newbie in drupal programming. Learning to code in a more drupal way. Please advise. Thanks.