Ich habe einen Ansichtsblock erstellt, dessen Computername "Nachrichten" ist.
Wie zeige ich es mit module_invoke()
und dem Computernamen der Ansicht an?
Verwendung views_embed_view()
:
echo views_embed_view('view_machine_name', 'block_1');
Sie können den Anzeigenamen herausfinden, indem Sie auf die Registerkarte klicken und den Namen in der Adressleiste Ihres Browsers überprüfen: #views-tab-block_1
gibt Ihnen block_1
.
{{ drupal_view('view_machine_name', 'block_1') }}
Wenn Sie der Ansicht einen Parameter übergeben möchten, verwenden Sie:
Beispielsweise:
oder:
quelle
tostinnis antwort ist in den meisten fällen die richtige. Wenn Sie jedoch den Titel "Ansicht" einfügen möchten, ist dies etwas hässlicher.
Aus der
views_embed_view()
Dokumentation:Beispielsweise:
Aktualisiert : @rojosnow hat bemerkt, dass in den Dokumenten darauf hingewiesen wird, dass Sie die Vorschau erhalten müssen, bevor Sie anrufen.
get_title()
Ich habe also diese beiden Zeilen vertauscht .quelle
Das hat bei mir funktioniert:
// und nannte es in HTML wie folgt //
quelle
Beachten Sie, dass für mich der Standardblock (ohne Namen) aufgerufen wird
block
und nichtblock_1
:quelle
Auch auf tostinnis Antwort aufbauend:
Wenn Sie nicht möchten, dass HTML-Code angezeigt wird, wenn die Ansicht keine Ergebnisse liefert. Fügen Sie auch einen Titel hinzu, aber nur, wenn Ergebnisse vorliegen.
quelle
Sie können Ihren Block rendern, anstatt die Ansichten mit dem folgenden Code zu rendern.
quelle
Aus eigener Erfahrung können Sie einen Pfad zu einem Ansichtstitel oder -inhalt mit einer Funktion wie der folgenden umwandeln.
Verwenden Sie zum Rendern der Ansicht
$view->render()
anstelle von$view->get_title()
.Sicher, bis ich das richtig angerufen habe
$view->execute()
, hat nichts richtig funktioniert. Ich würde leere Zeichenfolgen (möglicherweise null) als Rückgabewerte erhalten.quelle