Dans Drupal 6, vous pouvez utiliser les fichiers node-taxonomy.tpl.php
et page-taxonomy-term.tpl.php
dans votre thème pour modéliser des pages de taxonomie en considérant que le second est le wrapper pour le premier. Se comporter node-taxonomy.tpl.php
comme node.tpl.php
et page-taxonomy-term.tpl.php
comme page.tpl.php
. par exemple:
Page-taxonomie term.tpl.php
<?php require 'header.tpl.php'; ?>
<body class="<?php echo $body_classes; ?>">
<div id="page">
<?php require 'page-navigation.tpl.php'; ?>
<div id="main">
<h2>Taxonomy term page</h2>
<div class="taxonomy-content">
<?php if ($tabs): echo '<div id="tabs-wrapper" class="clear-block">'; endif; ?>
<?php if ($title && !$node): echo '<h2'. ($tabs ? ' class="with-tabs"' : '') .'>'. $title .'</h2>'; endif; ?>
<?php if ($tabs): echo '<ul class="tabs primary">'. $tabs .'</ul></div>'; endif; ?>
<?php if ($tabs2): echo '<ul class="tabs secondary">'. $tabs2 .'</ul>'; endif; ?>
<?php if ($show_messages && $messages){ echo $messages; } ?>
<?php echo $help; ?>
<?php echo $content; // contains the output of node-taxonomy.php, that's why I call this wrapper template file. ?>
</div> <!-- #taxonomy-content -->
</div> <!-- #main -->
</div> <!-- #page -->
<?php echo $closure; ?>
</body>
<?php require 'page-footer.tpl.php'; ?>
nœud taxonomy.tpl.php
<div id="node-<?php echo $node->nid; ?>" class="node<?php if($sticky) echo ' sticky'; ?><?php if(!$status) echo ' node-unpublished'; ?>">
<div class="taxonomy-node">
<div class="node-body">
<a class="node-title" href="<?php echo $node_url ?>" title="<?php echo $title ?>">
<?php echo $title ?>
</a>
<span class="node-cck-field">
<?php echo $node->field_cck_blah[0]['view']; ?>
</span>
</div>
</div>
</div>
Eh bien, la partie la plus importante: Par défaut le node-taxonomy.tpl.php
n'est pas connu de Drupal, nous devons donc introduire ceci comme suggestion de modèle dans le fichier template.php
de notre thème, ici nous allons:
/**
* Adding custom PHPTemplate suggestions on taxanomy pages.
*
* @param $vars
* A sequential array of variables to pass to theme template.
*/
function phptemplate_preprocess_node(&$vars) {
if(arg(0) == 'taxonomy'){
$suggestions = array('node-taxonomy');
$vars['template_files'] = array_merge($vars['template_files'], $suggestions);
}
}
Il y a également un taxonomy-term.tpl.php
, en ce qui concerne Drupal 7.
Il est un exemple de code, ne pas » oublier d'utiliser check_plain()
& check_url()
sur les impressions.
Merci Sepehr! Cela fonctionne, mais tous mes blocs de vue sur la page obtiennent le même traitement de mise en forme ... (ils sont affichés en tant que teasers de noeud) Y at-il un moyen d'arrêter de détruire mes vues? – askon
Vous êtes incroyable. – Steve