Ich versuche, eine Vorlage in Drupal 8 zu rendern. In Drupal 7 würde ich ein Thema mit hook_theme erstellen, ein Vorlagenverzeichnis in meinem Modul erstellen, die Vorlagendatei ablegen und sie mit theme () anzeigen. Wie mache ich das Gleiche mit Drupal 8? Ich habe folgendes ausprobiert, aber es ist ein Fehler aufgetreten:
In twitter_pull.module
/ ** * Implementiert hook_theme (). * / Funktion twitter_pull_theme ($ existent, $ type, $ theme, $ path) { Array zurückgeben ( 'twitter_pull_tweet_listing' => array ( 'Variablen' => Array ( 'description' => array (), ), 'template' => 'templates / twitter_pull_tweet_listing', ), ); }}
Innerhalb von twitter_pull / templates: die twitter_pull_tweet_listing.html.twig
In meinem Block:
$ tweet_template = array ('# theme' => 'twitter_pull_tweet_listing', '#attributes' => array ('params' => $ params)); $ output = drupal_render ($ tweet_template, array ('params' => $ params)); print $ output;
Ich erhalte den folgenden Fehler in meinen Protokollen:
Benutzerfehler: "Inhalt" ist ein ungültiger Render-Array-Schlüssel in Drupal \ Core \ Render \ Element :: children () (Zeile 89 von C: \ xampp \ htdocs \ drupal \ core \ lib \ Drupal \ Core \ Render \ Element. php).
EDIT: Ein weiterer Fehler:
Twig_Error_Loader: Vorlage "modules / custom / twitter_pull / templates / templates / twitter_pull_tweet_listing.html.twig" konnte nicht gefunden werden (untersucht: C: \ xampp \ htdocs \ drupal). in Twig_Loader_Filesystem-> findTemplate () (Zeile 202 von C: \ xampp \ htdocs \ drupal \ core \ vendor \ twig \ twig \ lib \ Twig \ Loader \ Filesystem.php).
Ich stelle mir vor, dass dieser Fehler auftritt, weil ich keine Namespaces verwende und nicht richtig automatisch lade. Wo lege ich meine Vorlagendatei ab? Aufgrund der Fehlermeldung habe ich sogar versucht, sie unter C: \ xampp \ htdocs \ drupal \ templates \ abzulegen, aber es hat immer noch nicht funktioniert.
drupal_render()
? Es erwartet einen Booleschen Wert
templates/templates/
Teil in der 2. Fehlermeldung lässt mich denken, dass Sie versuchen sollten, 'template' => 'twitter_pull_tweet_listing',
anstatt 'template' => 'templates/twitter_pull_tweet_listing',
inhook_theme()