Pregunta:
Tengo problemas para usar hook_form_alter()
con Views 3 y Drupal 7.
No puedo agregar una declaración if para identificar de manera única una vista; lo que sea que ponga, la declaración if nunca se considera verdadera. Sin embargo, puedo usar fácilmente form_id usando lo siguiente, ¡así que no estoy seguro de dónde me estoy equivocando!
if ($form_id == 'views_exposed_form') {
}
¿Cómo uso hook_form_alter()
para alterar de forma única una vista única mía?
Respuesta:
Puede obtener acceso al objeto de vista dentro de hook_form_alter accediendo a $form_state['view']
. Eso le permite identificar una vista específica:
function mymodule_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'views_exposed_form') {
$view = $form_state['view'];
if ($view->name == 'my_view_machine_name' && $view->current_display == 'display_name') {
// alter your exposed form here
}
}
}