Utworzyłem blok widoku, którego nazwa komputera to „aktualności”.
Jak wyświetlić go za pomocą module_invoke()
i nazwę komputera widoku?
Użyj views_embed_view()
:
echo views_embed_view('view_machine_name', 'block_1');
Możesz znaleźć wyświetlaną nazwę, klikając kartę i sprawdź jej nazwę w pasku adresu przeglądarki: #views-tab-block_1
daje block_1
.
{{ drupal_view('view_machine_name', 'block_1') }}
Jeśli chcesz przekazać parametr do widoku użyj:
Na przykład:
lub:
źródło
odpowiedź tostinni jest poprawna w większości przypadków. Jeśli jednak chcesz dołączyć tytuł Wyświetl, jest to nieco bardziej brzydkie.
Z
views_embed_view()
dokumentacji:Na przykład:
Zaktualizowano : @rojosnow zauważył, że dokumenty wskazują, że musisz uzyskać podgląd przed zadzwonieniem,
get_title()
więc odwróciłem te dwie linie.źródło
To zadziałało dla mnie:
// i nazwał to w html takim jak ten //
źródło
Uwaga: dla mnie wywoływany jest domyślny blok (bez nazwy),
block
a nieblock_1
:źródło
Opierając się również na odpowiedzi tostinni:
Jeśli nie chcesz, aby HTML wyświetlał się, jeśli widok nie ma wyników. Dodaj także tytuł, ale tylko w przypadku wyników.
źródło
Możesz renderować blok zamiast renderować widoki za pomocą następującego kodu.
źródło
Z mojego własnego doświadczenia możesz przekształcić ścieżkę do tytułu lub treści widoku za pomocą funkcji takiej jak poniżej.
Aby renderować widok, użyj
$view->render()
zamiast$view->get_title()
.Na pewno, dopóki nie zadzwoniłem poprawnie
$view->execute()
, nic nie działało poprawnie. Otrzymywałbym puste ciągi znaków (być może zerowe) jako zwracane wartości.źródło