Necesito representar un bloque de vistas en mi plantilla page.html.twig. En D7 haría esto:
<?php
$block = module_invoke('module_name', 'block_view', 'block_delta');
print render($block['content']);
?>
En Drupal 8 module_invoke está en desuso y se recomienda usar esto: (he agregado el nombre del bloque como segundo parámetro)
Drupal::moduleHandler()->invoke($block, 'views_block__blog_block_1', $args = array());
Intenté algunas cosas. Primero intenté hacerlo en una plantilla de ramita, pero no sé cómo llamar a las funciones de php en una plantilla de ramita, por lo que no resultó demasiado bien.
Luego llamé a la función en la función preprocess_page () en el archivo .theme, pero antes de que pudiera funcionar, intenté algo más simple solo para intentar hacer que una variable funcionara dentro de la plantilla de ramita que tampoco funcionó, por ejemplo:
En la función template_preprocess_page (& $ vars) en el archivo .theme:
$test = 'Hello World';
$vars['$my_var'] = $test;
Intenté llamar a my_var dentro de la plantilla de ramita pero no funcionó y recibí un mensaje de error que decía "El sitio tiene un error, comuníquese con el administrador"
Entonces, para resumir, aquí están mis preguntas:
- ¿Cómo hago disponibles las variables dentro de las plantillas de ramita?
- ¿Cómo llamo a funciones dentro de plantillas de ramita?
- ¿Renderizo bloques dentro del archivo .theme o plantilla de ramita?