FAQ sur l'intégration graphique

  1. Aucun contenu ou zone n'est sélectionnable dans le CMS
  2. J'ai un warning dans mes logs "The page [pageId1] cannot inherit the undefined zone [zoneName] of template [templateName] in skin [skinName] as asked for page [pageId1] in site [siteName]."
  3. Pourquoi un message d'erreur commençant par "Le préfixe doit se convertir en espace de noms ..." apparait ?
  4. Comment personnaliser les classes CSS par défaut positionnées sur les div des zone-items (first, even, last) ?

Aucun contenu ou zone n'est sélectionnable dans le CMS

Il arrive qu'un problème de charte graphique empêche de cliquer sur les icones de zones, de contenus ou de services dans le CMS, par exemple, une entête ou un pied de page qui passe graphiquement (mais de manière transparente) au dessus de l'ensemble des zones.

Pour vous assurer de cela, utilisez un inspecteur et regarder quel élement empèche de sélectionner l'image.

J'ai un warning dans mes logs "The page [pageId1] cannot inherit the undefined zone [zoneName] of template [templateName] in skin [skinName] as asked for page [pageId1] in site [siteName]."

Ce message signifie que dans la skin [skinName], vous avez défini un template [templateName] qui ne possède pas de zone nommée [zoneName]. Jusque là pas de problème.

Mais il se trouve que la page [pageId2], fille de la page d'identifiant [pageId1] utilise un gabarit avec héritage et que celui-ci est mal configuré.

Il faut donc analyser le gabarit utilisé par cette page fille et regarder la clause d'héritage : en général, le problème est qu'elle est trop générique.

Consulter la page Le fichier template.xml pour plus de détails.

Pourquoi un message d'erreur commençant par "Le préfixe doit se convertir en espace de noms ..." apparait ?

Une fonction nécessitant l'appel de méthodes du CMS Ametys a été utilisée dans un fichier XSL sans définir l'appel à cette méthode dans l'entête du fichier.

Ajouter le name-space attendu dans l'entête du fichier XSL incriminé. Le nom de ces deux éléments sont précisés dans le message d'erreur.

Par exemple, ligne 20, un appel à la méthode ametys: est réalisé, mais la méthode elle-même n'est pas déclarée. Les lignes 4 et 5 du fichier corrigé permettent de déclarer la méthode.

Fichier causant l'erreurFichier corrigé
<xsl:stylesheet version="1.0"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:i18n="http://apache.org/cocoon/i18n/2.1">
        
    <xsl:import href="plugin:web://pages/services/filtered-contents/list_3.3.xsl"/>        
 
    <xsl:template name="rss">
        <xsl:if test="RSSFeedURL != ''">
            <div class="rss">
                <a>
                    <xsl:attribute name="href">
                        <xsl:value-of select="$site-uri-prefix"/>
                        <xsl:text>/</xsl:text>
                        <xsl:value-of select="RSSFeedURL"/>
                    </xsl:attribute>
                    <xsl:choose>
                        <xsl:when test="ametys:skinResources('img/rssicon.png')">
                            <img src="{ametys:skinURL('img/rssicon.png')}" i18n:attr="alt title" title="plugin.web:PLUGINS_WEB_SERVICE_FILTERED_CONTENTS_RSS_FEED_ALT" alt="plugin.web:PLUGINS_WEB_SERVICE_FILTERED_CONTENTS_RSS_FEED_ALT"/>
                        </xsl:when>
                        <xsl:otherwise>
                            <i18n:text i18n:key="PLUGINS_WEB_SERVICE_FILTERED_CONTENTS_RSS_FEED_ALT" i18n:catalogue="plugin.web"/>
                        </xsl:otherwise>
                    </xsl:choose>
                </a>
            </div>
        </xsl:if>    
    </xsl:template>  
</xsl:stylesheet>        
<xsl:stylesheet version="1.0"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:i18n="http://apache.org/cocoon/i18n/2.1"
        xmlns:ametys="org.ametys.web.transformation.xslt.AmetysXSLTHelper"
        exclude-result-prefixes="ametys">
        
    <xsl:import href="plugin:web://pages/services/filtered-contents/list_3.3.xsl"/>        
 
    <xsl:template name="rss">
        <xsl:if test="RSSFeedURL != ''">
            <div class="rss">
                <a>
                    <xsl:attribute name="href">
                        <xsl:value-of select="$site-uri-prefix"/>
                        <xsl:text>/</xsl:text>
                        <xsl:value-of select="RSSFeedURL"/>
                    </xsl:attribute>
                    <xsl:choose>
                        <xsl:when test="ametys:skinResources('img/rssicon.png')">
                            <img src="{ametys:skinURL('img/rssicon.png')}" i18n:attr="alt title" title="plugin.web:PLUGINS_WEB_SERVICE_FILTERED_CONTENTS_RSS_FEED_ALT" alt="plugin.web:PLUGINS_WEB_SERVICE_FILTERED_CONTENTS_RSS_FEED_ALT"/>
                        </xsl:when>
                        <xsl:otherwise>
                            <i18n:text i18n:key="PLUGINS_WEB_SERVICE_FILTERED_CONTENTS_RSS_FEED_ALT" i18n:catalogue="plugin.web"/>
                        </xsl:otherwise>
                    </xsl:choose>
                </a>
            </div>
        </xsl:if>    
    </xsl:template>  
</xsl:stylesheet>        

Comment personnaliser les classes CSS par défaut positionnées sur les div des zone-items (first, even, last) ?

Depuis la 3.7 les div des zone-items portent des classes CSS supplémentaires : first, even, last. Il est possible de personnaliser ces classes CSS. 

Dans une XSL de gabarit /skins/[skinName]/templates/[templateName]/stylesheets/template.xsl ou dans une XSL commune aux différents gabarits (par exemple /skins/[skinName]/stylesheets/main.xsl sur la charte de démo) ajoutez le template "zone-item-class". Voici sa valeur par défaut :

<xsl:template name="zone-item-class">
    <xsl:if test="position() mod 2 = 0"><xsl:text>even </xsl:text></xsl:if>                                
    <xsl:if test="position() = 1"><xsl:text>first </xsl:text></xsl:if>
    <xsl:if test="position() = last()"><xsl:text>last</xsl:text></xsl:if>
</xsl:template>