Estoy tratando de representar una plantilla en Drupal 8. En Drupal 7, crearía un tema con hook_theme, crearía un directorio de plantillas en mi módulo, colocaría el archivo de plantilla y podría mostrarlo con theme (). ¿Cómo hago el eqivilent con Drupal 8? Intenté lo siguiente, pero falla:
En twitter_pull.module
/ ** * Implementa hook_theme (). * / función twitter_pull_theme ($ existente, $ tipo, $ tema, $ ruta) { matriz de retorno ( 'twitter_pull_tweet_listing' => array ( 'variables' => array ( 'description' => array (), ), 'template' => 'templates / twitter_pull_tweet_listing', ), ); }
Dentro de twitter_pull / templates: twitter_pull_tweet_listing.html.twig
Dentro de mi bloque:
$ tweet_template = array ('# theme' => 'twitter_pull_tweet_listing', '#attributes' => array ('params' => $ params)); $ output = drupal_render ($ tweet_template, array ('params' => $ params)); print $ output;
Me sale el siguiente error en mis registros:
Error de usuario: "contenido" es una clave de matriz de procesamiento no válida en Drupal \ Core \ Render \ Element :: children () (línea 89 de C: \ xampp \ htdocs \ drupal \ core \ lib \ Drupal \ Core \ Render \ Element. php).
EDITAR: Otro error:
Twig_Error_Loader: no se puede encontrar la plantilla "modules / custom / twitter_pull / templates / templates / twitter_pull_tweet_listing.html.twig" (examinado: C: \ xampp \ htdocs \ drupal). en Twig_Loader_Filesystem-> findTemplate () (línea 202 de C: \ xampp \ htdocs \ drupal \ core \ vendor \ twig \ twig \ lib \ Twig \ Loader \ Filesystem.php).
Me imagino que este error está ocurriendo porque no estoy usando espacios de nombres y carga automática correctamente. ¿Dónde pongo mi archivo de plantilla? Basado en el mensaje de error, incluso intenté ponerlo en C: \ xampp \ htdocs \ drupal \ templates \ pero aún así no funcionó.
drupal_render()
? Se espera un booleano
templates/templates/
parte en el segundo mensaje de error que me hace pensar que debe tratar 'template' => 'twitter_pull_tweet_listing',
en lugar de 'template' => 'templates/twitter_pull_tweet_listing',
enhook_theme()