Forum Ametys

Forum de la communauté Ametys

You are not logged in.

#1 29/01/2014 19:37:35

webupsud
Guest
Registered: 21/01/2014
Posts: 77

Tester si une balise div englobe un contenu

Bonjour,

Je cherche à faire une remontée de contenu de type image et texte. Mais l'organisation serait : une balise div qui contient toutes les images de ma remontée de contenu, une autre balise div qui contient tous les textes de ma remontée de contenu.

J'ai donc trois questions :
1- ce code ci est il correct ?
<xsl:template name="common-service-body-nonempty-content-content">
<div class="carrousel_slides">
                <xsl:apply-templates select="content[position () &lt;= 5]" />                   
            </div> 
                             
                       
            <div class="carrousel_captions">
                <xsl:apply-templates select="content[position () &lt;= 5]" />
            </div>
</xsl:template>

2- comment tester dans la fonction <xsl:template match="content"> la présence de la div englobant le contenu pour déterminer si je dois récupérer l'image ou le texte de celui-ci ?

3- peut-on faire une boucle sur les contenus ? (ce qui m'arrange) avec qqchose comme <xsl:for-each select="content">

Merci !

Last edited by webupsud (29/01/2014 19:41:31)

Offline

#2 30/01/2014 11:00:24

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,111

Re: Tester si une balise div englobe un contenu

Bonjour,

Vous pouvez tout à faire faire un <xsl:for-each select="content"> puis quelque chose du genre <xsl:copy-of select="div[contains(@class, 'content-ilustration')]"/> pour copier l'image à l'intérieur. Evidement cela dépend du html généré par la vue de votre contenu.
Et une deuxième boucle <xsl:for-each select="content"> pour le reste avec une copie du genre <xsl:copy-of select="*[not(div[contains(@class, 'content-ilustration')])]"/>


Raphael Franchet
Expert Ametys

Offline

#3 30/01/2014 15:28:37

webupsud
Guest
Registered: 21/01/2014
Posts: 77

Re: Tester si une balise div englobe un contenu

Merci Raphaël pour toutes ces explications !

Je viens d'essayer sans succès de changer cette fonction <xsl:template name="common-service-body-nonempty-content-content"> dans la remontée de contenu par un simple <p>test</p>, mais rien ne semble fonctionner. Faut-il obligatoirement faire un <xsl:apply-templates select="content[position () &lt;= 5]" /> dans cette fonction ? je ne comprend pas pourquoi il me retourne une erreur d'affichage avec un code aussi simple.

Offline

#4 30/01/2014 15:47:26

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,111

Re: Tester si une balise div englobe un contenu

Si vous avez une erreur c'est déjà le signe que votre fichier est pris en compte.
Non il n'y a pas de code attendu, vous faites ce que vous voulez.
Quelle est l'erreur exacte ? (soit dans les logs, soit en cliquant sur détails) ... vous avez peut être une erreur XSL tout bête ? à moins que la XSL commune ne fasse appel à un template que vous n'avez pas implémenté ?
Pouvez-vous coller votre code ici ?


Raphael Franchet
Expert Ametys

Offline

#5 30/01/2014 16:03:50

webupsud
Guest
Registered: 21/01/2014
Posts: 77

Re: Tester si une balise div englobe un contenu

Pardon, j'aurais du prendre plus de temps avant de poster, j'ai résolu le pb entre temps. Je finis par m'habituer aux erreurs, mais si un debuggeur plus intuitif pouvait arriver dans une prochaine version, cela aiderait grandement les intégrateurs ! (petit message en passant car celui ci est relativement illisible). Une simple combinaison de petites erreurs imbriquées les unes dans les autres (non déclaration d'une variable utilisée + présence d'un -- dans un commentaire), c'est corrigé et je suis arrivé au résultat voulu.

Mille fois merci pour le temps accordé et vos solutions qui m'ont bien dépanné jusqu'à présent !

Offline

Board footer

Powered by FluxBB