Программный вывод меню, блока, формы и views


98

Вывод меню; Вывод блока; Вывод формы; Вывод представления views

1. Программный вывод меню по его id

Например, главное меню - "main-menu":

$menu = menu_tree('main-menu');
print render($menu); 

Иногда возникает необходимость ограничить выводимое меню определенной глубиной. Например, следующий код покажет, как вывести "main-menu", органичившись вторым уровнем:

$items=menu_tree_page_data('main-menu', 2);
$items=menu_tree_output($items);
print render($items);

2. Программный вывод блока

$block = module_invoke($module_name, 'block_view', $block_delta);
echo render($block['content']);

где

  • $module_name - имя модуля, в котором определён блок,
  • $block_delta — номер блока.

3. Программный вывод формы по ее id

Например, вывод формы контактов:

//Если форма описана не в основном файле модуля,
//необходимо подключить файл с формой.
//Очень часто этого не требуется.
   module_load_include('inc', 'contact', 'contact.pages');
//Получаем массив с элементами формы
   $form=drupal_get_form('contact_site_form');
//Выводим форму
   print drupal_render($form);

4. Программный вывод представления views

print views_embed_view($name, $display_id = 'default'[, $argument_1[, $argument_N]]);
// $name - системное имя представления views
// $display_id - системное имя вида
// $argument_1, $argument_2, ... , $argument_N - аргументы (то, что в контекстных фильтрах требуется для представления)

Иногда полезно загружать не готовый html представления, а массив с результатами. Для этих целей следует использовать функцию 

views_get_view_result($name, $display_id[, $argument_1[, $argument_N]]).
Добавить комментарий
Может быть интересно

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

1
Те, кто использует модуль Double field могли заметить, что в текстовой области отсутствует редактор. Бывают случаи, когда для удобства наполнения он просто необходим.
1
По умолчанию при выводе поля с типом text_format Друпал отображает справочную информацию об ограничения того или иного текстового формата. Но не всегда данная информация нужна для конечного пользователя. Приведу способ, которым можно скрыть её вывод. Вариант через css мы не рассматриваем.
1
Иногда при разработке сайта появляется необходимость создавать отдельный шаблон для определенной ноды. По умолчанию такой возможности нет, зато можно это прикрутить самостоятельно. Как это сделать? Это можно узнать в данной статье.

Приятно наблюдать как статьи по Друпал 8 постепенно наполняют русскоязычный сегмент сети... Ну что ж, пора и мне вносить свой вклад в это дело. Первые шаги конечно даются нелегко, но на то они и первые. Придется много читать, пробовать, ошибаться и снова искать ответы в сети.

1