Drupal 8에서 템플릿을 렌더링하려고합니다. Drupal 7에서 hook_theme을 사용하여 테마를 만들고 모듈에 템플릿 디렉토리를 만들고 템플릿 파일을 드롭 한 다음 theme ()으로 표시 할 수 있습니다. Drupal 8로 eqivilent를 어떻게 수행합니까? 다음을 시도했지만 오류가 발생했습니다.
twitter_pull.module에서
/ ** hook_theme ()를 구현합니다. * / 함수 twitter_pull_theme ($ existing, $ type, $ theme, $ path) { 배열 반환 ( 'twitter_pull_tweet_listing'=> 배열 ( 'variables'=> 배열 ( 'description'=> array (), ), 'template'=> 'templates / 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;
로그에 다음과 같은 오류가 발생합니다.
사용자 오류 : "content"는 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()
? 부울을 기대하고 있습니다
templates/templates/
두 번째 오류 메시지 의 일부는 'template' => 'twitter_pull_tweet_listing',
'template' => 'templates/twitter_pull_tweet_listing',
hook_theme()