2013-03-12 3 views
0

나는 drupal에 상당히 익숙하다. 블록을 사용하여 모듈을 만드는 예제를 보았습니다. 내 질문에 customblock_block_view에서 $ content를 다른 템플릿 파일로 보내면 추가 HTML을 추가하여 렌더링 할 수 있습니까? 그렇다면 어떻게?템플릿 파일에서 블록을 렌더링하는 방법

/** 
* Implements hook_block_info(). 
*/ 
function customblock_block_info() { 
    $blocks = array(); 

    $blocks['list_modules'] = array(
    'info' => t('A listing of all of the enabled modules.'), 
    'cache' => DRUPAL_NO_CACHE, 
); 

    return $blocks; 
} 

/** 
* Implements hook_block_view(). 
*/ 
function customblock_block_view($block_name = '') { 
    if ($block_name == 'list_modules') { 
    $list = module_list(); 

    $theme_args = array('items' => $list, 'type' => 'ol'); 
    $content = theme('item_list', $theme_args); 

    $block = array(
     'subject' => t('Enabled Modules'), 
     'content' => $content, 
    ); 

    return $block; 
    } 
} 

답변

0

당신은, 당신은 단지 hook_theme을 사용하여 등록 할 필요가 자신의 템플릿 파일을 만들 수 있습니다

function customblock_theme() { 
    return array(
     'myblock' => array(
     'template' => 'mytpl', 
     'variables' => array('variable' => NULL), 
     ), 
    ); 
} 

다음 단계는 TPL 파일을 만드는 것입니다; 테마에서 mytpl.tpl.php를 좋아하십시오. 그런 다음, 당신은 당신이 훅 '블록'에 대한 $ 변수 또는 어떤 날 지점 수 있는지 말해 줄 수 $variable

1

항목은 theme($hook, $variables) 기능을 사용하여 렌더링됩니다. 모듈을 사용하여 전달할 항목을 $hook으로 찾으십시오. 블록의 경우 block입니다.

Theme developer 모듈은 함수 또는 템플릿을 통해 항목이 렌더링되는지 여부를 알려줍니다. 첫 번째 경우 함수 theme_block을 찾습니다. 두 번째 경우 파일 block.tpl.php을 찾습니다. 이 항목의 문서는 배열이 어떤 모양을 가져야 하는지를 알려줍니다.

$variables 배열을 구성하고 theme('block', $variables)을 호출하십시오.

템플릿 파일의 경우 일부 변수는 theme() 설명서에 설명 된 것처럼 사전 처리 기능에서 가져옵니다. 이러한 변수는 theme($hook, $variables)의 호출자가 제공 할 필요가 없습니다. 관련 전처리 기능이 템플리트 파일에 나열되어야합니다.

+0

로 사용할 수 $theme_args이 템플릿에 지금 theme()

theme('myblock',$theme_args); 

를 사용하여 전화 이 매개 변수가 지정된 자원 – prasadmsvs

+0

방금 ​​지적했습니다. 그것은'theme_block' 함수 또는'block.tpl.php' 파일에 있습니다. 드물지만 둘 다 존재합니다 (컨트 리뷰 션 모듈이나 테마가 테마 함수를 사용하여 코어가 렌더링하는 테마 훅용 템플릿 파일을 제공하는 경우에만 해당). – Oswald

+0

해당 블록에 대한 사용자 지정 템플릿을 작성하려면 어떻게해야합니까? – prasadmsvs

관련 문제