hook_preprocess_page
adalah kait preprocess yang dipanggil ketika file template page.tpl.php digunakan, dan hook_preprocess_html
hook preprocess dipanggil ketika file template html.tpl.php digunakan.
Kedua kait praproses dipanggil saat laman dirender theme('page')
, karena elemen laman yang ditentukan dari system_element_info () mendefinisikan html sebagai pembungkus tema.
$types['page'] = array(
'#show_messages' => TRUE,
'#theme' => 'page',
'#theme_wrappers' => array('html'),
);
system_theme () lalu mendefinisikan html sebagai berikut.
'html' => array(
'render element' => 'page',
'template' => 'html',
),
Adapun kapan harus mengimplementasikan hook_preprocess_html()
, Anda menerapkannya untuk mengubah variabel yang digunakan dalam file html.tpl.php, yang secara default memiliki konten berikut.
<!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>
Seperti yang Anda lihat, itu hanya berisi tag HTML yang membungkus konten halaman, tersedia di $page
. Dengan itu, Anda dapat mengubah konten <head>
tag, judul halaman (yang masuk dalam <title>
tag pada <head>
tag), gaya CSS, dan file JavaScript yang ditambahkan ke halaman, kelas, dan atribut untuk <body>
tag.
Dengan file template page.tpl.php, Anda dapat mengubah lebih banyak halaman yang diberikan, termasuk nama situs, slogan situs, judul halaman, dan feed yang terkait dengan halaman tersebut. Untuk sebagian besar dari mereka, ada fungsi Drupal khusus / hook yang harus Anda gunakan.
hook_preprocess_HOOK
adalah nama kait generik yang digunakan untuk semua kait preproses, dengan cara yang sama hook_form_FORM_ID_alter()
adalah nama kait yang digunakan untuk kelas kait pengubahan.