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

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

Если у вас есть опыт отображения обычных форм при помощи функции 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);
Опубликовано 18.10.2014 Теги: drupal 7, views, forms 0 комментариев
Подробнее

Drupal 7: Отображение формы добавления материала в блоке. Форма материала с полем изображения или файла.

Если вам потребуется отобразить форму добавления материала на отдельной странице, необходимо воспользоваться стандартным механизмом отображения страницы и загрузки формы.

Опубликовано 31.08.2013 Теги: drupal 7, forms 0 комментариев
Подробнее

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

  • 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