J'ai besoin de rendre un bloc de vues dans mon modèle page.html.twig. En D7, je ferais ceci:
<?php
$block = module_invoke('module_name', 'block_view', 'block_delta');
print render($block['content']);
?>
Dans Drupal 8 module_invoke est obsolète et recommandé d'utiliser ceci: (j'ai ajouté le nom du bloc comme deuxième paramètre)
Drupal::moduleHandler()->invoke($block, 'views_block__blog_block_1', $args = array());
J'ai essayé quelques trucs. J'ai d'abord essayé de le faire dans un modèle de brindille mais je ne sais pas comment appeler les fonctions php dans un modèle de brindille, donc cela ne s'est pas bien passé.
Ensuite, j'ai appelé la fonction dans la fonction preprocess_page () du fichier .theme mais avant de pouvoir la faire fonctionner, j'ai essayé quelque chose de plus simple juste pour essayer de faire fonctionner une variable dans le modèle de brindille qui ne fonctionnait pas non plus, par exemple:
Dans la fonction template_preprocess_page (& $ vars) du fichier .theme:
$test = 'Hello World';
$vars['$my_var'] = $test;
J'ai essayé d'appeler my_var à l'intérieur du modèle de brindille mais cela n'a pas fonctionné et j'ai reçu un message d'erreur disant "Le site a une erreur, veuillez contacter l'administrateur"
Donc, pour résumer, voici mes questions:
- Comment rendre les variables disponibles dans les modèles de brindilles?
- Comment appeler des fonctions dans des modèles de brindilles?
- Dois-je rendre des blocs à l'intérieur du fichier .theme ou du modèle de brindille?