2010-07-28 6 views
4

두 페이지 템플리트 파일이 있습니다. 하나는 'page.tpl.php'이고 다른 하나는 페이지 서브 세트입니다.다른 Drupal 페이지 템플리트는 어떻게 사용합니까?

이 템플릿을 특정 페이지에만 적용 할 수 있고 나머지는 page.tpl.php 만 기본으로 할 수 있습니까?

감사합니다. 나는 Drupal 6에있다.

답변

7

Drupal에서 템플릿은 "제안"이라고 불린다.

페이지의 경우 제안 사항은 url-path를 사용하여 작성됩니다. 다음과 같이

페이지/foo는/표시 줄에서 당신은 당신의 page.tpl.php 이름을 지정할 수 있습니다 :

  • page.tpl.php
  • 페이지 foo.tpl.php
  • 페이지 foo는-bar.tpl. PHP

드루팔 (Drupal은 가장 구체적인 것부터 가장 구체적인 것까지 살펴보고 발견 된 첫 번째 것을 선택합니다. page-foo-bar.tpl.php가 발견되면 foo/bar에 대한 내용을 보게됩니다. 그러면 페이지 -foo를 찾으면이를 사용합니다.

page-foo.tpl.php는/foo/beserk foo/pirate 및 foo/parrot에도 사용됩니다. 물론 코스가 아닌 한 page-foo-parrot.tpl.php를 만들면됩니다.

프론트 페이지는 경로가 없지만 프론트 페이지에 대한 제안이 존재합니다 : page-front.tpl.php은 프론트 페이지에서만 사용됩니다.

+0

이 사용

은 또한 오히려 제안을 추가하는 대신 템플릿 파일을 강제 할 수 어떤 종류의 firebug 콘솔을 추가하여 페이지의 모든 항목을 선택할 수있게 해주 며 많은 테마 정보를 표시합니다. 모든 제안을 포함하여. – berkes

+1

페이지 대시가 아닌 페이지 대시가 아닌 이중 대시가 아닙니까 ?? – anthonygore

0

Sections 모듈을 체크 아웃 할 수도 있습니다. 페이지 집합에 대해 별도의 테마를 선택할 수 있습니다. 페이지 선택은 블록 표시 구성 페이지와 동일합니다. 나열된 페이지를 제외한 모든 페이지에 표시, 나열된 페이지에만 표시, 다음 PHP 코드가 TRUE를 표시하면 표시.

내가 만든 사이트 중 하나에서 사용했는데 잘 작동합니다.

+0

나는 그 모듈을 좋아한다 : P – berkes

+0

페이지에 따라 page.tpl.php를 변경해야하는 경우에도 다른 제안을 사용해야한다. 미안해. 내가 도와주지 않으면. – NPC

5

드루팔의 기본 제안 제도 이외에, 당신은 템플릿 제안 배열을 테마에 template_preprocess_page을 구현하고 변경할 수 있습니다

function my_theme_preprocess_page(&$vars) { 
    if ($vars['some_var'] == 'some_value') { 
    $vars['template_files'][] = "page-special"; 
    } 
} 

Working with template suggestions를 참조하십시오. http://drupal.org/project/devel_themer, 콘텐츠의 조각을위한 템플릿 제안을 찾으려면

function my_theme_preprocess_page(&$vars) { 
    if ($vars['some_var'] == 'some_value') { 
    $vars['template_file'] = "page-special"; 
    } 
} 
+0

대답은 '$ vars ['theme_hook_suggestions '] [] ='page__special ';'을 사용하여 드루팔 (Drupal 7)에서 작동하지 않았습니다. 즉, 테마 디렉토리에 page - special.tpl.php가로드되었습니다. – Ejaz

관련 문제