Les variables $page
et $teaser
sont très utiles, mais existe-t-il un moyen de vérifier si je suis dans un type de contenu différent? Par exemple, si j'ai créé un type de contenu nommé Produits, que puis-je taper dans mon fichier de modèle page.tpl.php
qui affichera HTML uniquement si la page consultée est de type Produits?
Placez ceci dans le template.php de votre thème, en remplaçant 'THEMENAME' par le nom de votre thème:
function THEMENAME_preprocess_page(&$variables, $hook) {
$variables['some_html'] = '';
if (isset($variables['node']) && $variables['node']->type == 'product') {
$variables['some_html'] = '<p>Hello world!</p>';
}
}
Et utilisez ceci dans votre page.tpl.php:
<?php print $some_html; ?>
Alternativement, si vous souhaitez conserver la chaîne HTML dans votre fichier de modèle, je le ferais dans template.php:
function THEMENAME_preprocess_page(&$variables, $hook) {
$variables['print_extra_header'] = false;
if (isset($variables['node']) && $variables['node']->type == 'product') {
$variables['print_extra_header'] = true;
}
}
Et utilisez ceci dans page.tpl.php:
<?php if ($print_extra_header) : ?> <h1>THIS GETS PRINTED</h1> <?php endif; ?>
Assurez-vous de vider le cache après avoir créé la fonction THEMENAME_preprocess_page, sinon Drupal ne saura pas qu'il est là et ne s'exécutera pas.