Estou tentando renderizar um modelo no Drupal 8. No Drupal 7, eu criaria um tema com hook_theme, criaria um diretório de modelos no meu módulo, soltaria o arquivo de modelo e eu poderia exibi-lo com theme (). Como eu faço o eqivilent com o Drupal 8? Eu tentei o seguinte, mas ele errou:
No twitter_pull.module
/ **
* Implementa hook_theme ().
* /
função twitter_pull_theme ($ existente, $ tipo, $ tema, $ caminho) {
matriz de retorno (
'twitter_pull_tweet_listing' => matriz (
'variable' => array (
'description' => array (),
),
'template' => 'templates / twitter_pull_tweet_listing',
),
);
}
Por dentro twitter_pull / templates: the twitter_pull_tweet_listing.html.twig
Dentro do meu bloco:
$ tweet_template = array ('# theme' => 'twitter_pull_tweet_listing', '#attributes' => array ('params' => $ params));
$ output = drupal_render ($ tweet_template, array ('params' => $ params));
imprime $ output;
Eu recebo o seguinte erro nos meus logs:
Erro do usuário: "content" é uma chave de matriz de renderização inválida em Drupal \ Core \ Render \ Element :: children () (linha 89 de C: \ xampp \ htdocs \ drupal \ core \ lib \ Drupal \ Core \ Render \ Element. php).
EDIT: Outro erro:
Twig_Error_Loader: Não foi possível encontrar o modelo "modules / custom / twitter_pull / templates / templates / twitter_pull_tweet_listing.html.twig" (olhou para: C: \ xampp \ htdocs \ drupal). em Twig_Loader_Filesystem-> findTemplate () (linha 202 de C: \ xampp \ htdocs \ drupal \ core \ vendedor \ twig \ twig \ lib \ Twig \ Loader \ Filesystem.php).
Imagino que esse erro esteja ocorrendo porque não estou usando espaços para nome e carregamento automático corretamente. Onde coloco meu arquivo de modelo? Com base na mensagem de erro, tentei colocá-lo em C: \ xampp \ htdocs \ drupal \ templates \, mas ainda não funcionou.
drupal_render()? Está esperando um booleano
templates/templates/parte da 2ª mensagem de erro me faz pensar que você deveria tentar em 'template' => 'twitter_pull_tweet_listing',vez de 'template' => 'templates/twitter_pull_tweet_listing',emhook_theme()