Insertar el formulario del filtro expuesto de una vista con PHP

  • 1 Ene 2016
  • Drupal 7

El siguiente código PHP sirve para generar o imprimir el formulario del filtro expuesto de una vista. Puede resultar muy útil cuando por ejemplo utilizamos una vista para el motor de búsqueda de Drupal (por ejemplo con Search API) y queremos mostrar el formulario de búsqueda en todas las páginas. Este formulario no es más que el exposed filter de la vista. En este ejemplo la vista se llama "search";

$view = views_get_view('search');
$display_id = 'default';

$view->set_display($display_id);
$view->init_handlers();
$form_state = array(
  'view' => $view,
  'display' => $view->display_handler->display,
  'exposed_form_plugin' => $view->display_handler->get_plugin('exposed_form'),
  'method' => 'get',
  'rerender' => TRUE,
  'no_redirect' => TRUE,
);
$form = drupal_build_form('views_exposed_form', $form_state);
print drupal_render($form);

Un ejemplo práctico de dónde utilizar este código es por ejemplo en el contenido de un Mini panel o dentro de un block.