Tôi đang cố gắng kết xuất một mẫu trong Drupal 8. Trong Drupal 7, tôi sẽ tạo một chủ đề với hook_theme, tạo một thư mục mẫu trong mô-đun của mình, thả tệp mẫu vào và tôi có thể hiển thị nó với theme (). Làm cách nào để thực hiện hiệu quả với Drupal 8? Tôi đã thử như sau, nhưng nó lỗi:
Trong twitter_pull.module
/ ** * Triển khai hook_theme (). * / chức năng twitter_pull_theme ($ hiện tại, $ type, $ theme, $ path) { trả về mảng ( 'twitter_pull_tweet_listing' => mảng ( 'biến' => mảng ( 'mô tả' => mảng (), ), 'mẫu' => 'mẫu / twitter_pull_tweet_listing', ), ); }
Bên trong twitter_pull / samples: twitter_pull_tweet_listing.html.twig
Trong khối của tôi:
$ tweet_template = mảng ('# theme' => 'twitter_pull_tweet_listing', '#attribut' => mảng ('params' => $ params)); $ output = drupal numnder ($ tweet_template, mảng ('params' => $ params)); in $ đầu ra;
Tôi nhận được lỗi sau trong nhật ký của mình:
Lỗi người dùng: "nội dung" là khóa mảng kết xuất không hợp lệ trong Drupal \ Core \ Render \ Element :: children () (dòng 89 của C: \ xampp \ htdocs \ drupal \ core \ lib \ Drupal \ Core \ Render \ Element. php).
EDIT: Một lỗi khác:
Twig_Error_Loader: Không thể tìm thấy mẫu "mô-đun / tùy chỉnh / twitter_pull / mẫu / mẫu / twitter_pull_tweet_listing.html.twig" (nhìn vào: C: \ xampp \ htdocs \ drupal). trong Twig_Loader_Filesystem-> findTemplate () (dòng 202 của C: \ xampp \ htdocs \ drupal \ core \ eller \ twig \ twig \ lib \ Twig \ Loader \ Filesystem.php).
Tôi tưởng tượng lỗi này xảy ra vì tôi không sử dụng không gian tên và tự động tải chính xác. Tôi để tập tin mẫu của tôi ở đâu? Dựa trên thông báo lỗi, tôi thậm chí đã cố gắng đặt nó tại C: \ xampp \ htdocs \ drupal \ samples \ nhưng nó vẫn không hoạt động.
drupal_render()
? Nó đang mong đợi một boolean
templates/templates/
trong thông báo lỗi thứ 2 khiến tôi nghĩ bạn nên thử 'template' => 'twitter_pull_tweet_listing',
thay vì 'template' => 'templates/twitter_pull_tweet_listing',
tronghook_theme()