Drupal 8でテンプレートをレンダリングしようとしています。Drupal7では、hook_themeでテーマを作成し、モジュールにテンプレートディレクトリを作成し、テンプレートファイルをドロップして、theme()で表示できます。Drupal 8でどのようにして能力を発揮しますか?私は以下を試しましたが、エラーになります:
twitter_pull.module
/ **
* hook_theme()を実装します。
* /
function twitter_pull_theme($ existing、$ type、$ theme、$ path){
配列を返す(
'twitter_pull_tweet_listing' => array(
'変数' =>配列(
'説明' => array()、
)、
'テンプレート' => 'テンプレート/ twitter_pull_tweet_listing'、
)、
);
}
twitter_pull / templates内:twitter_pull_tweet_listing.html.twig
私のブロック内:
$ tweet_template = array( '#theme' => 'twitter_pull_tweet_listing'、 '#attributes' => array( 'params' => $ params)); $ output = drupal_render($ tweet_template、array( 'params' => $ params)); $ outputを出力します。
ログに次のエラーが表示されます。
ユーザーエラー:「コンテンツ」はDrupal \ Core \ Render \ Element :: children()の無効なレンダー配列キーです(C:\ xampp \ htdocs \ drupal \ core \ lib \ Drupal \ Core \ Render \ Elementの89行目)。 php)。
編集:別のエラー:
Twig_Error_Loader:テンプレート "modules / custom / twitter_pull / templates / templates / twitter_pull_tweet_listing.html.twig"が見つかりません(C:\ xampp \ htdocs \ drupalにあります)。Twig_Loader_Filesystem-> findTemplate()内(C:\ xampp \ htdocs \ drupal \ core \ vendor \ twig \ twig \ lib \ Twig \ Loader \ Filesystem.phpの202行目)。
名前空間を使用していないため、このエラーが発生していると思います。テンプレートファイルはどこに置くのですか?エラーメッセージに基づいて、C:\ xampp \ htdocs \ drupal \ templates \に配置しようとしましたが、それでも機能しませんでした。
drupal_render()?の2番目の引数としてパラメーターの配列を渡す特定の理由 ブール値を期待しています
templates/templates/第二エラーメッセージの一部は、私はあなたが試みるべきだと思います'template' => 'twitter_pull_tweet_listing',の代わり'template' => 'templates/twitter_pull_tweet_listing',にhook_theme()