J'ai créé un bloc de vue dont le nom de machine est "news".
Comment puis-je l'afficher en utilisant module_invoke()
et le nom de la machine de la vue?
Utiliser views_embed_view()
:
echo views_embed_view('view_machine_name', 'block_1');
Vous pouvez trouver le nom complet en cliquant sur l'onglet et vérifier son nom dans la barre d'adresse de votre navigateur: #views-tab-block_1
vous donne block_1
.
{{ drupal_view('view_machine_name', 'block_1') }}
Si vous voulez passer un paramètre à la vue, utilisez:
Par exemple:
ou:
la source
La réponse de tostinni est la bonne dans la plupart des cas. Toutefois, si vous souhaitez inclure le titre de la vue, il est un peu plus moche.
De la
views_embed_view()
documentation:Par exemple:
Mise à jour : @rojosnow a noté que la documentation indique que vous devez obtenir l'aperçu avant d' appeler, de
get_title()
sorte que j'ai retourné ces deux lignes.la source
Cela a fonctionné pour moi:
// et l'a appelé en HTML comme ceci //
la source
Note, pour moi le bloc par défaut (sans nom) est appelé
block
plutôt queblock_1
:la source
Construisant également sur la réponse de tostinni:
Si vous ne voulez pas que du HTML apparaisse si la vue n'a aucun résultat. Ajoutez également un titre, mais uniquement s'il y a des résultats.
la source
Vous pouvez rendre votre bloc au lieu de rendre les vues avec le code suivant.
la source
De ma propre expérience, vous pouvez transformer un chemin en titre ou en contenu de vue avec une fonction comme celle-ci.
Pour rendre la vue, utilisez
$view->render()
plutôt que$view->get_title()
.Bien sûr, jusqu'à ce que j'appelle correctement
$view->execute()
, rien ne fonctionnait correctement. Je voudrais obtenir des chaînes vides (peut-être null) comme valeurs de retour.la source