2016-07-27 4 views
0

모듈이 foo이고 foo_page_build을 구현했습니다. 이 기능을 사용하여 page_top 영역에 일부 내용을 추가하려고합니다. 그래서 열심히는 다음과 같습니다이 작동. Drupal 7의 hook_page_build를 사용하여 모듈에서 .tpl.php를 렌더링하십시오.

function foo_page_build(&$page) { 
    $page['page_top']['foo'] = array(
    '#markup' => 'Hello, World!', 
); 
} 

하지만 지금은 .tpl.php을로드하고 렌더링 할 수있는 내용으로 이것을 사용하고 싶습니다. 드루팔 (Drupal 7)에서 어떻게해야합니까? 또한, 이것이 틀린 훅이라면 무엇을 구현해야 하는가?

답변

0

hook_page_build는 위치 (지역)에 항상 콘텐츠 (동적 콘텐츠도 포함)를 구현하려는 경우 유용합니다.

아마도 귀하의 경우에는 Block API을 사용하여 모듈 용 사용자 정의 블록을 정의하는 것이 더 쉽습니다. 마녀는 지역에서 원하는 것을 인쇄 할 것입니다. 그런 다음 사용자 정의 PHP 템플릿을로드, 후

..., 마녀 사용자를 위해, 마녀 지역에서 마녀 페이지에서 관리 할 수 ​​있습니다, 당신은에 있습니다

1/대한 테마를 정의하여 hook_theme()

/** 
* Implements hook_theme(). 
*/ 
function foo_theme($existing, $type, $theme, $path) { 
    return array(
    'foo_block' => array(
     'template' => 'templates/block-foo', 
     'variables' => array(
     'options' => NULL, 
    ), 
    ), 
); 
} 

2/테마() 함수를 호출 (드루팔 API에 대한보고) 및 그것은 당신의 page_top 요소의 '#markup'속성에서 반환하는 것을 사용하여 모듈.

'#markup' => theme('foo_block', array('options' => $options)); 

.tpl.php 파일은 하위 폴더에 저장됩니다 foo는 모듈의 '템플릿'/foo/templates/block-foo.tpl.php 그리고 당신은 그것을 오버라이드 (override) 할 수있을 것입니다 당신의 테마 폴더에.

관련 문제