Drupal 7 템플릿 제안 에서보고 된 것처럼 Drupal 7에서 페이지에 기본적으로 사용되는 템플릿 제안은 page-[front | internal / path] .tpl.php입니다.
http://www.example.com/node/1/edit 페이지에서 Drupal은 다음 템플릿 파일을 찾습니다.
- 페이지-노드 --edit.tpl.php
- 페이지-노드 -1.tpl.php
- 페이지 --node.tpl.php
- page.tpl.php
추가 제안을 추가하려면, 테마가 구현해야 template_preprocess_page을 () 하고 새로운 제안을 추가 $variables['theme_hook_suggestions']
( $variables
함수에 참조로 전달 된 변수입니다).
그렇게하면 제안 된 템플리트 파일이 사용되지 않는 유일한 이유는 파일 이름이 올바르지 않기 때문입니다. 예를 들어, 페이지에 책 페이지가 표시되는 경우 템플리트 파일은 page--book.tpl이어야합니다. .php. 테마 코드를 변경하고 page--book.tpl.php와 같은 템플릿을 찾지 못하면 page-node-type.tpl.php 템플릿을 사용하도록 할 수 있습니다.
또한 theme_get_suggestions () ( template_preprocess_page ()에 의해 호출되는 함수 )에서 하이픈이로 바뀌고 _
그 반대로 바뀌지 않습니다. 수행 된 이유는 기능 코드에보고 된 주석에 설명되어 있습니다.
// When we discover templates in drupal_find_theme_templates(),
// hyphens (-) are converted to underscores (_) before the theme hook
// is registered. We do this because the hyphens used for delimiters
// in hook suggestions cannot be used in the function names of the
// associated preprocess functions. Any page templates designed to be used
// on paths that contain a hyphen are also registered with these hyphens
// converted to underscores so here we must convert any hyphens in path
// arguments to underscores here before fetching theme hook suggestions
// to ensure the templates are appropriately recognized.
$arg = str_replace(array("/", "\\", "\0", '-'), array('', '', '', '_'), $arg);