Grouper les vues sous forme de nodes
Submitted by Julien on Mon, 13/10/2008 - 17:56
Le module Views est tout simplement un des modules indispensables pour tout site Drupal qui se respecte. La version 2 du module est une grande réussite en termes de fonctionnalités et d'ergonomie.
Views 2 permet de désigner un champ qui servira à grouper les résultats. Malheureusement, pour l'instant, cette fonctionnalité ne fonctionne que pour lles résultats affichés sous forme de champs et non pas sous forme de nodes.
Une astuce permet de contourner ce problème :
- Créez une vue de nodes.
- Ajoutez-y le champ "Nid"
- Choisissez d'afficher les résultats sans formattage, sous forme de champs
- Affichez ensuite les informations de thème, et choisissez un des fichiers de thèmes pour le champ "Nid". Par souci de simplification, nous utiliserons views-view-field.tpl.php mais dans ce cas toutes les vues qui utilisent le champ "Nid" afficheront les résultats sous forme de nodes. Utilisez un thème plus précis si vous souhaitez viser une vue en particulier.
- Éditez le fichier de thème, views-view-field.tpl.php dans notre exemple :
<?php if ($fields['nid']): // si un champ "Nid" existe ?>
<?php
$node = node_load($fields['nid']->content);
print theme('node', $node);
?>
<?php else : ?>
<?php foreach ($fields as $id => $field): ?>
<?php if (!empty($field->separator)): ?>
<?php print $field->separator; ?>
<?php endif; ?>
<<?php print $field->inline_html;?> class="views-field-<?php print $field->class; ?>">
<?php if ($field->label): ?>
<label class="views-label-<?php print $field->class; ?>">
<?php print $field->label; ?>:
</label>
<?php endif; ?>
<span class="field-content"><?php print $field->content; ?></span>
</<?php print $field->inline_html;?>>
<?php endforeach; ?>
<?php endif; ?>
Pensez à rescanner les fichiers de thème depuis l'interface d'administration de la vue. Voilà, la vue affiche bien des nodes complets !
