Migration graphique de la 3.8.2 vers la 3.8.3


Méthode ametys:serviceParameter(String paramName)

Dans la version 3.8.2, l'appel à ametys:serviceParameter(String paramName) , si la valeur du paramètre est vide ou inexistante, renvoie un nœud texte vide.
En 3.8.3, si le paramètre est vide, la méthode renvoie null.

Coté intégration, il faut donc faire attention lorsque le paramètre demandé peut être vide.

C'est le cas du paramètre "pagination" pour les remontées de page et de contenus.

Dans tous les fichiers XSL de votre charte graphique, recherchez "pagesPerPage" et "contentsPerPage"

Remplacez :

<xsl:variable name="pagesPerPage">
        <xsl:choose>
            <xsl:when test="$pagination = '' or $pagination = 0"><xsl:value-of select="count(/pages/page)"/></xsl:when>
            <xsl:otherwise><xsl:value-of select="$pagination"/></xsl:otherwise>
        </xsl:choose>
</xsl:variable>

par (ajout de not($pagination))

<xsl:variable name="pagesPerPage">
        <xsl:choose>
            <xsl:when test="not($pagination) or $pagination = '' or $pagination = 0"><xsl:value-of select="count(/pages/page)"/></xsl:when>
            <xsl:otherwise><xsl:value-of select="$pagination"/></xsl:otherwise>
        </xsl:choose>
</xsl:variable>

Remplacez :

<xsl:variable name="contentsPerPage">
        <xsl:choose>
            <xsl:when test="$pagination = '' or $pagination = 0"><xsl:value-of select="count(/contents/content)"/></xsl:when>
            <xsl:otherwise><xsl:value-of select="$pagination"/></xsl:otherwise>
        </xsl:choose>
</xsl:variable>

par (ajout de not($pagination))

<xsl:variable name="contentsPerPage">
        <xsl:choose>
            <xsl:when test="not($pagination) or $pagination = '' or $pagination = 0"><xsl:value-of select="count(/contents/content)"/></xsl:when>
            <xsl:otherwise><xsl:value-of select="$pagination"/></xsl:otherwise>
        </xsl:choose>
</xsl:variable>

Méthode resolveBoundedImage(String type, String uri, int maxHeight, int maxWidth)

Dans tous vos fichier XSL, rechercher l'utilisation de la méthode resolveBoundedImage à 4 arguments resolveBoundedImage(String type, String uri, int maxHeight, int maxWidth)

Dans cette méthode, la hauteur et la largeur étaient inversées par erreur. Vérifier vos appels à cette méthode : assurez-vous que la hauteur demandée est bien le 3e argument, et la largeur est le 4e argument.

Pour pouvez faire un rechercher/remplacer dans Eclipse avec :

  • rechercher : resolveBoundedImage\s*\(([^(,)]+|[^,)]+\([^)]+\)[^,)]+),([^(,)]+|[^(,)]*\([^()]*\)[^(,)]*),([^(,)]+|[^(,)]*\([^()]*\)[^(,)]*),([^(,)]+|[^(,)]*\([^()]*\)[^(,)]*)\)
  • remplacer par  : resolveBoundedImage($1,$2,$4,$3)

Pensez à cocher "Regular expression" !

Retour en haut