[Résolu] quel template pour « filedset »

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,
Je cherche en vain le template (s’il existe) pour modifier
les fieldset « collapsable ».
Voici le bout de code que je souhaiterais modifier :

<fieldset id="webform-template-fieldset" class="collapsible form-wrapper collapse-processed">
<legend>
<span class="fieldset-legend">
<a class="fieldset-title" href="#">
<span class="fieldset-legend-prefix element-invisible">Masquer</span>
Modèle d'email
</a>
<span class="summary"></span>
</span>
</legend>
<div class="fieldset-wrapper">
</fieldset>

Je souhaiterais simplement inverser "Masquer" (donc la balise span) et "Modèle d'email".
Tout cela dans le but de remplacer "Masquer" par une image "+".
Ce "+" serait remplacé par "-" lorsque le fieldset est ouvert.

Mais. Où se trouve ce template ??

Merci d'avance,
Fabien

Version de Drupal : 

Merci pour la voie à suivre.
Très utile la page : "Default theme implementations".

Ceci étant, je ne suis pas encore très à l'aise avec les hook et compagnie.
J'ai utilisé le template.php pour "modifier" la fonction mon-theme_fieldset(). ça ok.

Mais je ne peux pas modifier : $element['#title'] dans

if (!empty($element['#title'])) {
  // Always wrap fieldset legends in a SPAN for CSS positioning.
  $output .= '<legend><span class="fieldset-legend">' . $element['#title'] . '</span></legend>';
}

J'ai regardé les fonctions connexes, mais je n'en vois aucune
qui permette de modifier le titre.
Je vais continuer à chercher.

Merci,
Fabien

"Mais je ne peux pas modifier : $element[‘#title’]"

Que voulez vous faire exactement? Votre titre se trouve $variables et il n'y a pas de raison pour que vous ne puissiez pas le modifier.

En fait derrière : $element[‘#title’]
il y a :

<a class="fieldset-title" href="#">
<span class="fieldset-legend-prefix element-invisible">Masquer</span>
Modèle d'email
</a>

Et c'est justement ce que je veux inverser.
Je veux juste réécrire ça de la manière suivante :

<a class="fieldset-title" href="#">
Modèle d'email
<span class="fieldset-legend-prefix element-invisible"><img src="../images/ouvrir.png" width="8" height="8" alt="ouvrir" /></span>
</a>

Ensuite, je pense réadapter collapse.js.
Mais là encore, je bloque sur comment remplacer ma version de ce .js par celle présente dans le répertoire misc/ (la version originale.)

Suis-je assez précis ?

Pour le titre, je ne suis pas sur, comme je n'ai pas le contenu de $variables sous la main. Mais effectivement, vous aurez potentiellement un problème si le titre genre "Modèle d'email" n'est pas accessible ailleurs en "raw".

Pour le fichier javascript, vous pouvez assez facilement le remplacer par le votre en prenant exemple sur le code du module jquery_update qui fait exactement la même chose. Cherchez les fonctions genre _replace ou _replacement dans le .module, de mémoire.

J'ai finalement abandonné l'idée
pour me conformer au modèle proposé par défaut. Trop de bidouille pour pas grand chose ;)
J'utilise la class « collapsed » pour afficher ou non le + et le -.
Du coup, je n'ai pas modifier le fichier .js
Merci pour tout.

Drupal permet de presque tout faire mais pas toujours a n'importe quel prix. Cela fait partie des contraintes d'utilisation d'un CMS. Effectivement, dans votre cas, c'est beaucoup de travail pour un résultat qui ne change pas du tout l’expérience de l'utilisateur final, donc pas forcement utile.