2013-05-18 3 views
0

hook_preprocess_page() 모듈에서 구현 된 템플릿 파일을 제안했지만 제안 된 템플릿 파일이 사용 된 것 같지 않습니다.hook_preprocess_page()가 제안 된 템플릿 파일을 사용하지 않는 것 같습니다

템플릿 파일은 모듈이 들어있는 디렉토리에있는 page-terminal-template.tpl.php이며 이것은 hook_preprocess_page()의 구현입니다.

function terminal_preprocess_page(&$variables) { 
    if (arg(0) == "terminal") { 
    $variables['theme_hook_suggestions'][] = "page__terminal_template"; 
    } 
} 

아무도 도와 줄 수 없습니까?

답변

0

실제로이 훅은 테마의 template.php 파일에서 모듈의 훅과 함께 호출 할 수도 있습니다.

Drupal 7 설명서 here을 참조하십시오.

는 활성 테마 MY_THEME 인 경우, 다음 코드가 있어야한다 말 :

function MY_THEME_preprocess_page(&$variables) { 
    if (arg(0) == "terminal") { 
     $variables['theme_hook_suggestions'][] = "page__terminal_template"; 

    } 
} 

그리고 템플릿 제안 작동합니다.

편집 :이 기능은 후크를 사용하여 모듈로 구현할 수도 있습니다.

+0

내 테마의 이름이었다 journalcrunch.so 난 여전히 함수가 호출되는 template.php 파일에 journalcrunch__preprocess_page ($ 변수) {사용하지만 주제 – arteta

+0

는 journalcrunch_preprocess_page ($ 변수) {미안 – Pupil

+0

에 함수 이름을 수정 실수로. 함수 이름을 journalcrunch_preprocess_page (& $ variables)로 썼습니다. 주석 처리 중에 여분의 밑줄을 입력했습니다. 캐시를 지우고 여전히 작동하지 않습니다. – arteta

0

사전 처리 및 프로세스 기능은 모듈별로 구현할 수 있습니다. 실제로 theme()에 대한 설명서는 해당 함수가 호출 된 순서를 보여 주면 나열합니다.

사실 드루팔 (Drupal은 테마 디렉토리에서 제안 된 템플릿 파일을 찾습니다.

  1. 템플릿을 넣어이 모듈은 현재
  2. 템플릿을 제안 모듈 디렉토리에서 템플릿 파일을로드 할 수 Load view template on module activation에보고 무엇에 따라 사용되는 테마를 포함하는 디렉토리에 제안되는 파일 : 이러한 대안이 파일은 당신이 다른 질문을보고 무엇을 다음 테마

에 의해 구현 전처리 기능에서 사용하려면, 당신은 모듈 디렉토리에있는 템플릿 파일을 사용할 수있을 것입니다. 문제가 인 경우 현재 활성화 된 테마에서 사용 된 기본 페이지 템플릿과 다른 일반 템플릿을 사용하게됩니다.

현재 활성화 된 테마에 대한 템플릿 파일을 추가하는 경우 새 템플릿 파일을 테마에 추가 한 후에 drupal_theme_rebuild()을 호출하여 템플릿 파일이있는 디렉토리를 다시 검색하도록해야합니다.

관련 문제