Saya mencoba merender templat dalam Drupal 8. Dalam Drupal 7, saya akan membuat tema dengan hook_theme, membuat direktori templat dalam modul saya, memasukkan file templat ke dalamnya dan saya bisa menampilkannya dengan theme (). Bagaimana saya melakukan eqivilent dengan Drupal 8? Saya mencoba yang berikut ini, tetapi gagal:
Di twitter_pull.module
/ ** * Menerapkan hook_theme (). * / function twitter_pull_theme ($ existing, $ type, $ theme, $ path) { mengembalikan array ( 'twitter_pull_tweet_listing' => array ( 'variabel' => array ( 'description' => array (), ), 'template' => 'templates / twitter_pull_tweet_listing', ), ); }
Di dalam twitter_pull / templates: the twitter_pull_tweet_listing.html.twig
Di dalam blok saya:
$ tweet_template = array ('# theme' => 'twitter_pull_tweet_listing', '#attributes' => array ('params' => $ params)); $ output = drupal_render ($ tweet_template, array ('params' => $ params)); cetak $ output;
Saya mendapatkan kesalahan berikut di log saya:
Kesalahan pengguna: "konten" adalah kunci larik render yang tidak valid di Drupal \ Core \ Render \ Element :: children () (baris 89 dari C: \ xampp \ htdocs \ drupal \ core \ lib \ Drupal \ Core \ Render \ Element. php).
EDIT: Kesalahan lain:
Twig_Error_Loader: Tidak dapat menemukan templat "modul / custom / twitter_pull / templates / templates / twitter_pull_tweet_listing.html.twig" (melihat ke dalam: C: \ xampp \ htdocs \ drupal). di Twig_Loader_Filesystem-> findTemplate () (baris 202 dari C: \ xampp \ htdocs \ drupal \ core \ vendor \ twig \ twig \ lib \ Twig \ Loader \ Filesystem.php).
Saya membayangkan kesalahan ini terjadi karena saya tidak menggunakan namespace dan autoloading dengan benar. Di mana saya meletakkan file template saya? Berdasarkan pesan kesalahan, saya bahkan mencoba untuk meletakkannya di C: \ xampp \ htdocs \ drupal \ templates \ tetapi masih tidak berfungsi.
drupal_render()
? Ini mengharapkan boolean
templates/templates/
dari pesan kesalahan ke-2 membuat saya berpikir Anda harus mencoba 'template' => 'twitter_pull_tweet_listing',
daripada 'template' => 'templates/twitter_pull_tweet_listing',
dihook_theme()