hook_preprocess_page
- це гачок попередньої обробки, який викликається при використанні файлу шаблону page.tpl.php , і hook_preprocess_html
це гачок передпроцесового виклику, коли використовується файл шаблону html.tpl.php .
Обидва гачки попередньої обробки викликаються під час відображення сторінки theme('page')
, оскільки елемент сторінки, визначений у system_element_info (), визначає 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 та файли JavaScript, додані до сторінки, класи та атрибути для <body>
тегу.
За допомогою файлу шаблону page.tpl.php ви можете змінити більше сторінки, що надається, включаючи назву сайту, гасло сайту, назву сторінки та канали, пов’язані зі сторінкою. Для більшості з них існує певна функція / гачок Drupal, яку ви повинні використовувати.
hook_preprocess_HOOK
- це загальне ім'я гака, яке використовується для всіх гачків попередньої обробки, так само hook_form_FORM_ID_alter()
, як назва гака, що використовується для класу гачок для зміни.