Message d'avertissement

The subscription service is currently unavailable. Please try again later.

[Resolu]Custom text ou template pour view

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

J'ai un type de contenu FAQ dans lequel j'ai le titre en question et le corps pour réponse.

J'ai fait une view pour récupérer tous les nodes pour ce type de contenu et je souhaiterais l'afficher de manière à avoir la question et en dessous un fieldset qui pourrait se développer.

Pour cela je sélectionne dans mes champs le titre pour la question et le corps pour la réponse. Je n'affiche pas ce dernier et j'ai essayé de créer un custom text pour mettre mon body dans le fieldset mais mon code html n'est pas pris en compte.

Voici mon code pour le custom text

<fieldset class="collapsible collapsed">
<legend>Réponse
      <div class="form-item">
            [body]
        </div>
    </legend>
</fieldset>

Mon code html n'est pas pris en compte, est-ce normal?

Sinon, comment faire un template de ma view? J'ai regardé dans les thèmes de ma view et j'ai
Sortie de l'affichage: views-view.tpl.php, views-view--faq.tpl.php, views-view--page.tpl.php, views-view--faq--page.tpl.php, views-view--faq.tpl.php, views-view--page-1.tpl.php, views-view--faq--page-1.tpl.php

Si je veux faire un template sur views-view--faq.tpl.php quel fichier doit me servir de base pour le dupliquer et le renommer et comment faire pour obtenir mon effet?

Pour le node-typecontenu.tpl.php je maîtrise bien mais la ça me paraît obscure, pourriez-vous m'éclairer SVP.

D'avance merci.

Forum : 
Version de Drupal : 

Ton HTML devrait être interprêté mais je te déconseille de mélanger la présentation dans le code des vues, fais ton fichier de template ça sera plus simple.

Pour trouver le contenu du fichier de template, lorsque tu as la liste des suggestions de nom de fichier à utiliser tu as un lien en début de ligne qui te montre le code source à insérer dans ce fichier (dans ton cas précis clique sur "Sortie de l'affichage").

Ensuite sur le nom de fichier à utiliser cela dépends de tes besoin, le premier nom de fichier étant un nom générique (le fichier que tu thèmeras sera réutilisé dans d'autres vues) et le dernier est le plus précis.
A toi de cibler ce qui est le plus approprié, views-view--faq--page.tpl.php me parait correct.

merci pour ta réponse.

Pour le nom du template on est d'accord mais lequel dois-je dupliquer pour me servir de base à views-view--faq--page.tpl.php

Si je prends, views-view.tpl.php comme base, il me suffit de modifier ces lignes

<?php if ($rows): ?>
    <div class="view-content">
      <?php print $rows; ?>
    </div>
  <?php elseif ($empty): ?>
    <div class="view-empty">
      <?php print $empty; ?>
    </div>
  <?php endif; ?>

par contre si je veux faire mon fieldset comment puis-je connaître le nom des champs à insérer?

Dans mon cas, le titre et le body.

Un simple

<?php
print $title;
print
$body;
?>

fonctionnera-t-il?

Dois-je placer mon template dans mon theme ou avec les autres templates de views dans le dossier modules>views>themes ?

Tu dupliques le fichier associé au type de template que tu veux faire (views-view ou views-view-unformatted ou views-view-fields etc) Alors pour themer les champs comme tu veux il faut que tu utilises plus views-view-unformatted--faq--page.tpl.php à partir duquel tu as accès à $fields['title'], $fields['body'] etc.

Tu dois ajouter ton template dans ton thème et penser à vider le cache pour que ce nouveau fichier soit pris en compte.

merci, j'ai réussi par contre il se passe un truc bizarre, mais c'est lié au fieldset.

J'ai mis dans views-view-field--faq--body.tpl.php (template qui retourne le body)

<fieldset class="collapsible collapsed">
    <legend>
        <a class="views-processed" href="#">R&eacute;ponse</a>
    </legend>
    <div class="fieldset-wrapper">
        <?php print $output; ?>
    </div>
  
</fieldset>

quand je fais aperçu de ma view le fiedset se déplie et se replie sans problème par contre quand je suis dans ma page ça ne fonctionner pas.

J'ai essayé de regarder si une propriété CSS pausait problème.

Et j'ai remarqué qu'en mode aperçu quand le fieldset était replié j'avais

<fieldset class="collapsible collapsed">
<div class="fieldset-wrapper" style="display:none">

et quand le fieldset est déplié

<fieldset class="collapsible">
<div class="fieldset-wrapper" style="display:block">

Le changement se fait automatiquement en mode aperçu mais pas dans le résultat de la view.

Dois-je appeler un js ou quelque chose dans ce genre?

Merci d'avance

////////////////EDIT

c'est résolu j'avais oublié de mettre l'appel à la fonction javascript dans la page.

Bonjour,

je me permet de poser une question sur ce topic car nous ne sommes pas loin dans les dates et j'ai une question sur le même sujet !

Dans une views que j'ai créer, j'affiche un champ titre de noeuds, et un champs cck.
en fait j'aimerais dans un template de cette view récupéré ces 2 champs bien distinctement.

********* Edit **********
finalement j'ai réussi moi même, désolé d'avoir posté, je devrais réfléchir avant de me précipité ici !!

merci

bonjour,
merci pour ce sujet, il est vraiment intéressant. Moi je suis débutant dans drupal et je dois effectivement réalisé un contenu dans le meme esprit et la je trouve des problemes, alors je vous détaille ce que j'ai fais et vous me dites:
-j'ai créeé un type de contenu BENEF. il est composé d'un titre, un sous-titre et une description: en cliquant sur le sous-titre la description s'affiche.(ca ce que je veux obtenir :))
-j'ai créé une view qui me liste BENEF

Et la j'ai commencé à essayer de vous suivre:
j'ai crée un fichier: views-view--benef--page.tpl.php qui est une copie de views-view.tpl.php
puis j'ai créee un fichier views-view-field--benef--body.tpl.php dans lequel j'ai mis votre code
- et enfin rien je ne sais plus koi faire, je suis coincé

si quelqu'un peut m'aider
merci