hook_preprocess_page
전처리 후크가 때 호출되는 page.tpl.php의 템플릿 파일을 사용하고 hook_preprocess_html
때 전처리 후크가 호출 html.tpl.php의 템플릿 파일이 사용됩니다.
system_element_info ()theme('page')
에서 정의 된 페이지 요소가 html을 테마 랩퍼로 정의하므로 페이지를 렌더링 할 때 두 전처리 후크가 호출됩니다 .
$types['page'] = array(
'#show_messages' => TRUE,
'#theme' => 'page',
'#theme_wrappers' => array('html'),
);
그런 다음 system_theme ()는 다음과 같이 html을 정의합니다.
'html' => array(
'render element' => 'page',
'template' => 'html',
),
구현시기 hook_preprocess_html()
에 대해서는 html.tpl.php 파일에 사용 된 변수를 변경하도록 기본적으로 다음과 같은 내용을 포함하도록 구현합니다.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN"
"http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php print $language->language; ?>" version="XHTML+RDFa 1.0" dir="<?php print $language->dir; ?>"<?php print $rdf_namespaces; ?>>
<head profile="<?php print $grddl_profile; ?>">
<?php print $head; ?>
<title><?php print $head_title; ?></title>
<?php print $styles; ?>
<?php print $scripts; ?>
</head>
<body class="<?php print $classes; ?>" <?php print $attributes;?>>
<div id="skip-link">
<a href="#main-content" class="element-invisible element-focusable"><?php print t('Skip to main content'); ?></a>
</div>
<?php print $page_top; ?>
<?php print $page; ?>
<?php print $page_bottom; ?>
</body>
</html>
보시다시피, 페이지 내용을 감싸는 HTML 태그 만 포함되어 있습니다 $page
. 그것으로, 당신은의 내용을 변경할 수 있습니다 <head>
태그, 페이지 제목합니다 (에가는 일 <title>
태그 <head>
태그), CSS 스타일과 자바 스크립트는 페이지, 클래스와의 속성에 추가 된 파일 <body>
태그입니다.
page.tpl.php 템플릿 파일을 사용하면 사이트 이름, 사이트 슬로건, 페이지 제목 및 페이지와 관련된 피드를 포함하여 렌더링중인 페이지를 더 많이 변경할 수 있습니다. 대부분의 경우, 대신 사용해야하는 특정 Drupal 기능 / 후크가 있습니다.
hook_preprocess_HOOK
모든 전처리 후크에 사용되는 일반 후크 이름 hook_form_FORM_ID_alter()
이며, 변경 후크 클래스에 사용되는 후크 이름 과 동일 합니다.