Problem/Motivation
Currently views has some hooks that are very generic. Implementing those hooks for several views configurations leads to code that's hard to read.
An example (attention might be D7 specific) is hook_views_exposed_form_alter()
. This is even a special case because it's basically an implementation of hook_form_FORM_ID_alter()
.
However, if you've to adjust multiple exposed forms from views you've to add quite some conditions in your implementation.
Proposed resolution
Trigger views name / display name specific views hooks.
A very ugly but trivial solution for a D7 hook_views_exposed_form_VIEWS_NAME_DISPLAY_NAME_alter()
could look like:
/**
* Form builder for the exposed widgets form.
*
* Be sure that $view and $display are references.
*/
function views_exposed_form($form, &$form_state) {
....
// Save the form
views_exposed_form_cache($view->name, $view->current_display, $form);
// Invoke hook_views_exposed_form_VIEWS_NAME_DISPLAY_NAME_alter().
drupal_alter('views_exposed_form_' . $view->name . '_' . $view->current_display, $form, $form_state);
return $form;
}
Remaining tasks
User interface changes
API changes
New hooks.
Comments
Comment #1
dawehner.