2011-01-20 1 views
1

기본 기본 메뉴에 항목 목록이 있습니다. 나는 각 항목과 사용자 정의 템플릿/테마 전체 메뉴를 반복 할 수 있도록 템플릿을 재정의하려고합니다.Drupal 7 및 theme()이 포함 된 사용자 정의 템플릿 사용

echo theme('links', array('links' => menu_navigation_links('main-menu', 0))); 

기본 메뉴는 drupal이 제공하는 기본 메뉴 ID입니다. 첫 번째 매개 변수는 기본 "링크"템플릿을 사용하도록 말하고 있습니다. mytheme 디렉토리에있는 my mainmenu.tpl.php를 어떻게 사용합니까?

내가 mainmenu.tpl.php라는 이름의 파일을 생성하고 모든이 사라 경우 mainmenu.tpl.php의 링크를 기본값으로 대체를 제공하기 위해

theme('links__mainmenu.tpl.php') 

으로 전화 시도했습니다. 나는 파일의 이름을 잘못 정하고 있는데, 내 삶을 생각할 수 없다. 도움말 :

건배, 알렉스

답변

0

기본의 종류하지만 테마는 기본 테마를 구현 않고 테마가 기본으로 설정되어 있습니까?

4

모듈의 기본 테마는 hook_theme 메서드에 정의되어 있습니다. 이 함수를 사용하면 테마 파일 (.tpl.php)과 변수가 전달됩니다. 기본 테마 파일을 선언하려면 template 필드를 사용하십시오.

function hook_theme($existing, $type, $theme, $path) { 
    return array(
    'mymodule_display' => array(  /* displayable name */ 
     'template' => 'mymodule_display', /* template file, leave off .tpl.php */ 
     'variable' => array(...),   /* associative array of vars used */ 
    ) 
); 
} 

link에는 더 많은 예제가 들어 있습니다.

모듈의 기본 테마를 호출하려면 원래 게시물에 표시된대로 theme() 메서드를 사용하십시오. 다음과 같이하십시오 :

대체 접미어는 마지막으로 선호되는 대체 테마를 정의하는 데 사용됩니다. 따라서 theme('links__mymodule_display', ...)mymodule_display을 다시 검색 할 수없는 경우에만 Drupal이 Links 모듈 테마를 사용할 것임을 의미합니다.

관련 문제