page-content-type.tpl.php — een aparte template voor een inhoudstype
Waarschijnlijk heb je al eens aparte templates gemaakt voor je nodes door ze te overschrijven als node-content-type.tpl.php.
Soms is dat voldoende, maar in andere gevallen wil je voor een bepaald inhoudstype een eigen paginatemplate instellen. Helaas is dat in Drupal 6 niet mogelijk zonder extra code. Om ervoor te zorgen dat onze nieuwe templates voor inhoudstypen, zoals page-content-type.tpl.php, werken, moet je de volgende code toevoegen aan template.php:
function phptemplate_preprocess_page(&$vars) {
if (isset($vars['node'])) {
$vars['template_files'][] = 'page-'. str_replace('_', '-', $vars['node']->type);
}
}
Nu kun je een eigen template maken voor een specifiek inhoudstype, bijvoorbeeld page-news.tpl.php (waarbij news de machine-naam is van het inhoudstype “Nieuws”).
In Drupal kun je ook de template voor de weergave van een taxonomieterm overschrijven door de volgende functie toe te voegen aan template.php:
function phptemplate_preprocess_node(&$vars) {
if (arg(0) == 'taxonomy') {
$suggestions = array(
'node-taxonomy'
);
$vars['template_files'] = array_merge($vars['template_files'], $suggestions);
}
}
Daarna kun je in de map van je huidige thema een eigen template node-taxonomy.tpl.php aanmaken en aanpassen naar wens.