Перейти к основному содержанию

Drupal 7: Как программно получить и отобразить Views exposed form

Опубликовано 18.10.2014 Теги: drupal 7, views, forms

Если у вас есть опыт отображения обычных форм при помощи функции drupal_get_form, то можно предположить, что для получения и отображения views exposed form будет достаточно простого вызова drupal_get_form с form_id. Но это не совсем верно, так как Views предоставлять форму не обычным способом и в данном случае этот прием не сработает.

Для того чтобы получить исходную форму и вызвать render вручную:

$view = views_get_view($view_name);
$view->set_display($display_id);
$view->init_handlers();
$exposed_form_state = array(
  'view' => &$view,
  'display' => &$view->display[$display_id],
  'exposed_form_plugin' => $view->display_handler->get_plugin('exposed_form'),
  'method' => 'get',
  'rerender' => TRUE,
  'no_redirect' => TRUE,
  'always_process' => TRUE,
);
$form = drupal_build_form('views_exposed_form', $exposed_form_state);
$rendered_form = render($form);

Получить готовую разметку формы:

$view = views_get_view($view_name);
$view->set_display($display_id);
$view->init_handlers();
$exposed_form = $view->display_handler->get_plugin('exposed_form');
$rendered_form = $exposed_form->render_exposed_form(TRUE);

Комментарии

Содержание этого поля является приватным и не предназначено к показу. Если у вас есть Gravatar аккаунт, связанный с введенным адресом email, то он будет использован для отображения вашего аватара.

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.
  • Для публикации фрагментов кода, используйте тег <code>...</code>.

Категории блога

  • Drupal 7 (35)
  • Drupal 8 (1)
  • PHP (6)
  • jQuery (3)
  • Linux (6)
  • Интернет (1)
  • JavaScript (1)
  • Дизайн (1)
  • События (19)
  • Разное (1)

Архив блога

  • декабрь 2017 (1)
  • август 2017 (1)
  • июль 2017 (1)
  • июнь 2017 (1)
  • май 2017 (1)
  • апрель 2017 (1)
  • март 2017 (2)
  • сентябрь 2016 (2)
  • июнь 2016 (1)
  • январь 2016 (1)
  • сентябрь 2015 (2)
  • май 2015 (1)
  • февраль 2015 (3)
  • ноябрь 2014 (1)
  • октябрь 2014 (1)
  • сентябрь 2014 (1)
  • июль 2014 (1)
  • июнь 2014 (1)
  • май 2014 (1)
  • январь 2014 (1)
  • декабрь 2013 (3)
  • ноябрь 2013 (2)
  • сентябрь 2013 (2)
  • август 2013 (2)
  • июнь 2013 (3)
  • май 2013 (4)
  • апрель 2013 (2)
  • март 2013 (3)
  • февраль 2013 (1)
  • декабрь 2012 (3)

Связь с автором

Alex Schedrov Twitter Icon Alex Schedrov Facebook Icon Alex Schedrov Drupal Icon Alex Schedrov Github Alex Schedrov RSS Icon
© Schedrov Alexander, 2011—2022