Я создал блок просмотра, имя компьютера которого «Новости».
Как мне отобразить его, используя module_invoke()
имя машины и вид?
Используйте views_embed_view()
:
echo views_embed_view('view_machine_name', 'block_1');
Вы можете узнать отображаемое имя, нажав на вкладку и проверив его имя в адресной строке вашего браузера: #views-tab-block_1
дает вам block_1
.
{{ drupal_view('view_machine_name', 'block_1') }}
Если вы хотите передать параметр в представление, используйте:
Например:
или:
источник
Ответ Тостинни является правильным в большинстве случаев. Тем не менее, если вы хотите включить заголовок View, это немного уродливее.
Из
views_embed_view()
документации:Например:
Обновлено : @rojosnow отметил, что в документах указано, что вы должны получить предварительный просмотр перед вызовом,
get_title()
поэтому я перевернул эти две строки.источник
Это сработало для меня:
// и назвал его в HTML, как это //
источник
Обратите внимание, для меня блок по умолчанию (без имени) называется,
block
а неblock_1
:источник
Также опираясь на ответ Тостинни:
Если вы не хотите, чтобы какой-либо HTML отображался, если у представления нет результатов. Также добавьте заголовок, но только если есть результаты.
источник
Вы можете визуализировать свой блок вместо рендеринга представлений с помощью следующего кода.
источник
Исходя из моего собственного опыта, вы можете преобразовать путь к заголовку представления или контенту с помощью функции, подобной следующей.
Чтобы отобразить представление, используйте
$view->render()
вместо$view->get_title()
.Наверняка, пока я правильно не назвал
$view->execute()
, ничего не получалось. Я бы получил пустые строки (возможно, ноль) в качестве возвращаемых значений.источник