Submitted by WS12 on
Bonjour,
Toute nouvelle sur Drupal, j'espère ne pas poser une question dont la réponse est évidente, mais bon, ça fait 2 jours que je cherche...
Voilà, j'ai créé une node (fiche adhérent), qui contient un certains nombre de champs, dont certains sont regroupés (en groupes).
Je voudrais que ces groupes s'affichent sous forme d'onglets.
J'ai essayé d'agir sur les formats de mes groupes (vertical tab et horizontal tabs item), mais dans les 2 cas, ça met mes groupes les uns au dessus des autres, et pas en onglets (et d'ailleurs je ne vois pas la différence entre les 2).
J'ai aussi essayé Display suite, avec lequel j'ai réussi à regrouper mes champs en colonnes / haut et pied de page, mais toujours pas en onglets.
Est-ce quelqu'un pourrait m'indiquer comment faire ?
D'avance merci
Bonjour, Je suis plus habitué
Permalien Soumis par openpixel le 15 Février, 2012 - 13:43
Bonjour,
Je suis plus habitué à Drupal 6 mais je vais essayer de répondre.
Je pense que la meilleure solution est de passer par un template, qui va définir la façon dont vont s'afficher les nodes de type adhérent. Il suffit de copîer le fichier node.tpl.php et d'en faire une copie sous le nom node-nom_du_type_de_contenu.tpl.php.
Ensuite, dans ce fichier de template, propre à ce type de contenu, il va falloir enlever la ligne contenant
et la remplacer par le nom des variables relatives à ce type de contenu ce qui donnera
pour afficher le contenu d'une variable s'appelant field_conservation_produit par exemple. (le module http://drupal.org/project/contemplate est très pratique pour savoir ce qu'il faut mettre dans le fichier.
Ainsi de suite pour toutes les variables.
En ce qui concerne les onglets, il peuvent être codés dans le template directement, avec à la fois du css, du jquery pourquoi pas ...
<ul class="tab-produits clearfix">
<li id="description"><a><span>Description</span></a></li>
<li id="degustation"><a><span>Dégustation</span></a></li>
</ul>
<div id="container-produits">
<div id="description-produit" class="onglet-produit">
<h2>Découvrez notre <?php print $title; ?></h2>
<?php print $node->content['body']['#value']; ?>
</div>
<div id="degustation-produit" class="onglet-produit">
<h2>Découvrez nos suggestions de dégustation</h2>
<?php print $node->field_degustation_produit[0]['view'] ?>
</div>
</div>
et le jquery qui va avec :
$(".tab-produits li").click(function () {
$(".tab-produits").find('li').removeClass('active');
$(this).addClass("active");
var elId = $(this).attr("id");
$("#container-produits").find('div.onglet-produit').hide();
$("#"+elId+"-produit").css("display","block");
});
En espérant que ça va pouvoir t'aider à avancer ...
Cordialement.
Anthony