hook_preprocess_page
preprocess kanca zaman çağrılan olduğunu page.tpl.php şablon dosyası kullanılır ve hook_preprocess_html
ne zaman önişleyebilir kanca çağrılan olan html.tpl.php şablon dosyası kullanılır.
Bir sayfa işlendiğinde her iki önişleme kancası çağrılır theme('page')
, çünkü system_element_info () öğesinden tanımlanan sayfa öğesi html'yi tema sarmalayıcısı olarak tanımlar.
$types['page'] = array(
'#show_messages' => TRUE,
'#theme' => 'page',
'#theme_wrappers' => array('html'),
);
system_theme () daha sonra html'yi aşağıdaki gibi tanımlar.
'html' => array(
'render element' => 'page',
'template' => 'html',
),
Ne zaman uygulanacağına gelince hook_preprocess_html()
, varsayılan olarak aşağıdaki içeriğe sahip olan html.tpl.php dosyasında kullanılan değişkenleri değiştirmek için uygularsınız.
<!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>
Gördüğünüz gibi, yalnızca içinde mevcut olan bir sayfa içeriğini saran HTML etiketlerini içerir $page
. Bununla, <head>
etiketin içeriğini , sayfa başlığını ( <title>
etiketteki etikete giren <head>
metin), CSS stillerini ve bir sayfaya eklenen JavaScript dosyalarını, sınıfların ve <body>
etiketin niteliklerini değiştirebilirsiniz .
Page.tpl.php şablon dosyasıyla, site adı, site sloganı, sayfa başlığı ve sayfa ile ilişkili yayınlar da dahil olmak üzere, oluşturulan sayfanın daha fazlasını değiştirebilirsiniz. Çoğu için, kullanmanız gereken belirli bir Drupal işlevi / kancası vardır.
hook_preprocess_HOOK
tüm önişleme kancaları için kullanılan genel kanca adıdır, aynı şekilde hook_form_FORM_ID_alter()
bir değişiklik kancaları sınıfı için kullanılan kanca adıdır.