J'essaie de rendre un modèle dans Drupal 8. Dans Drupal 7, je créerais un thème avec hook_theme, créerais un répertoire de modèles dans mon module, déposerais le fichier de modèle dedans et je pourrais l'afficher avec theme (). Comment faire l'eqivilent avec Drupal 8? J'ai essayé ce qui suit, mais cela donne des erreurs:
Dans twitter_pull.module
/ ** * Implémente hook_theme (). * / fonction twitter_pull_theme ($ existant, $ type, $ thème, $ chemin) { tableau de retour ( 'twitter_pull_tweet_listing' => tableau ( 'variables' => tableau ( 'description' => tableau (), ), 'template' => 'templates / twitter_pull_tweet_listing', ), ); }
À l'intérieur de twitter_pull / templates: le twitter_pull_tweet_listing.html.twig
Dans mon bloc:
$ tweet_template = array ('# theme' => 'twitter_pull_tweet_listing', '#attributes' => array ('params' => $ params)); $ output = drupal_render ($ tweet_template, array ('params' => $ params)); imprimer $ sortie;
J'obtiens l'erreur suivante dans mes journaux:
Erreur utilisateur: "contenu" est une clé de tableau de rendu non valide dans Drupal \ Core \ Render \ Element :: children () (ligne 89 de C: \ xampp \ htdocs \ drupal \ core \ lib \ Drupal \ Core \ Render \ Element. php).
EDIT: Une autre erreur:
Twig_Error_Loader: impossible de trouver le modèle "modules / custom / twitter_pull / templates / templates / twitter_pull_tweet_listing.html.twig" (examiné dans: C: \ xampp \ htdocs \ drupal). dans Twig_Loader_Filesystem-> findTemplate () (ligne 202 de C: \ xampp \ htdocs \ drupal \ core \ vendor \ twig \ twig \ lib \ Twig \ Loader \ Filesystem.php).
J'imagine que cette erreur se produit parce que je n'utilise pas correctement les espaces de noms et le chargement automatique. Où dois-je mettre mon fichier modèle? Sur la base du message d'erreur, j'ai même essayé de le mettre dans C: \ xampp \ htdocs \ drupal \ templates \ mais cela ne fonctionnait toujours pas.
drupal_render()
? Il attend un booléen
templates/templates/
partie dans le 2ème message d'erreur me fait penser que vous devriez essayer au 'template' => 'twitter_pull_tweet_listing',
lieu de 'template' => 'templates/twitter_pull_tweet_listing',
danshook_theme()