Drupal 8'de bir şablon oluşturmaya çalışıyorum. Drupal 7'de hook_theme ile bir tema oluşturacağım, modülümde şablonlar dizini oluşturacağım, şablon dosyasını bırakacağım ve theme () ile görüntüleyebilirdim. Drupal 8 ile ekipmanı nasıl yaparım? Aşağıdakileri denedim, ancak hata veriyor:
Twitter_pull.module içinde
/ ** * Hook_theme () uygular. * / işlev twitter_pull_theme ($ mevcut, $ türü, $ tema, $ yol) { dönüş dizisi ( 'twitter_pull_tweet_listing' => dizi ( 'değişkenler' => dizi ( 'description' => dizi (), ), 'template' => 'templates / twitter_pull_tweet_listing', ), ); }
İçinde twitter_pull / şablonlar: twitter_pull_tweet_listing.html.twig
Bloğumun içinde:
$ tweet_template = dizi ('# theme' => 'twitter_pull_tweet_listing', '#attributes' => dizi ('params' => $ params)); $ output = drupal_render ($ tweet_template, array ('params' => $ params)); print $ output;
Günlüklerimde şu hatayı alıyorum:
Kullanıcı hatası: "içerik", Drupal \ Core \ Render \ Element :: children () (C: \ xampp \ htdocs \ drupal \ core \ lib \ Drupal \ Core \ Render \ Element satırında geçersiz bir oluşturma dizisi anahtarıdır. pHP).
EDIT: Başka bir hata:
Twig_Error_Loader: "modüller / custom / twitter_pull / templates / templates / twitter_pull_tweet_listing.html.twig" şablonu bulunamadı (C: \ xampp \ htdocs \ drupal). Twig_Loader_Filesystem-> findTemplate () 'de (C: \ xampp \ htdocs \ drupal \ core \ vendor \ twig \ twig \ lib \ Twig \ Loader \ Filesystem.php satır 202).
Bu hata olduğunu düşünüyorum, çünkü ad alanlarını kullanmıyorum ve otomatik olarak doğru yüklemiyorum. Şablon dosyamı nereye koyacağım? Hata mesajına dayanarak, C: \ xampp \ htdocs \ drupal \ templates \ 'de bile koymaya çalıştım ama hala işe yaramadı.
drupal_render()
? Bir boolean bekliyor
templates/templates/
2 hata mesajında parçası bana denemelisiniz düşündürüyor 'template' => 'twitter_pull_tweet_listing',
yerine 'template' => 'templates/twitter_pull_tweet_listing',
içindehook_theme()