Manuel de migration graphique de la version 2.6.2 vers la version 2.6.3

Migration du service de recherche sur les formations

Attention, cette migration nécessite également une migration technique Manuel de migration technique de la version 2.6.2 vers la version 2.6.3

 

Le paramètre de service "Afficher des parcours" a été modifié. Il ne s'agit plus d'un booléen mais d'une liste déroulante avec 4 options possibles:

  • none : ne pas afficher les parcours
  • all : afficher tous les parcours
  • matching_search_only : afficher seulement les parcours qui répondent aux critères de recherche
  • all_with_highlight : afficher tous les parcours en mettant en évidence ceux qui répondent aux critères de recherche

Dans vos surcharges, recherchez les endroits ou vous utilisez le paramètre <xsl:param name="displaySubProgram" select="ametys:serviceParameter('displaySubProgram')"/>
La valeur n'est plus "true" ou "false", mais l'une des 4 valeurs citées ci-dessus.

Affichage des parcours

Dans les résultats de la recherche, la logique d'affichage des parcours a donc évoluée pour tenir compte des 4 valeurs possibles :

  • none : les parcours ne sont pas disponibles dans le XML d'entrée
  • all: les parcours sont tous disponibles dans le XML d'entrée, vous pouvez les afficher sous la formation
  • matching_search_only : seuls les parcours répondant aux critères de recherche sont disponibles dans le XML d'entrée, vous pouvez les afficher sous la formation
  • all_with_highlight : les parcours sont tous disponibles dans le XML d'entrée, mais ceux avec l'attribut "highlight" sont ceux qui répondant aux critères de recherche, vous pouvez donc personnaliser l'affichage entre ceux qui répondent aux critères et les autres.

Vous disposez de 3 templates XSL supplémentaires pour gérer l'affichage des parcours, que vous pouvez utiliser ou surcharger comme vous le souhaitez :

	<xsl:template name="hit-subprograms">
        <xsl:param name="class">custom</xsl:param>
        
        <xsl:if test="$displaySubProgram != 'none' and subprogram">
			<!-- Parcours répondant aux critère de recherche -->
			<xsl:if test="subprogram[not(@highlight) or @highlight = 'true']">
                <ul class="{$class} subprogram">
                    <xsl:for-each select="subprogram[not(@highlight) or @highlight = 'true']">
                        <li>
                           <xsl:if test="@highlight = 'true'"><xsl:attribute name="class">highlight</xsl:attribute></xsl:if>
                           <xsl:call-template name="hit-subprogram" />
                        </li>
                    </xsl:for-each>
                </ul>
            </xsl:if>
            
			<!-- Autres parcours -->
            <xsl:call-template name="hit-subprograms-others">
                <xsl:with-param name="class" select="$class"/>
            </xsl:call-template>
        </xsl:if>
    </xsl:template>
    
    <xsl:template name="hit-subprograms-others">
        <xsl:param name="class">custom</xsl:param>
        
        <xsl:if test="$displaySubProgram = 'all_with_highlight' and subprogram[@highlight = 'false']">
            <div class="other-subprograms">
                <a class="collapsed" href="#" onclick="$j(this).toggleClass('collapsed')">
                    <span>
                        <xsl:choose>
                            <xsl:when test="subprogram[@highlight = 'true']">
                                <i18n:text i18n:key="PLUGINS_ODFWEB_SERVICE_SEARCH_NOT_MATCHING_SUBPROGRAM_OTHERS" i18n:catalogue="plugin.odf-web"/>   
                            </xsl:when>
                            <xsl:otherwise>
                                <i18n:text i18n:key="PLUGINS_ODFWEB_SERVICE_SEARCH_NOT_MATCHING_SUBPROGRAM_SEE" i18n:catalogue="plugin.odf-web"/>   
                            </xsl:otherwise>
                        </xsl:choose>
                    </span>
                </a>
                <ul id="other-subprograms-{$uniqueId}-{position()}" class="{$class} subprogram others">
                    <xsl:for-each select="subprogram[@highlight = 'false']">
                        <li>
                           <xsl:call-template name="hit-subprogram" />
                        </li>
                    </xsl:for-each>
                </ul>
            </div>
        </xsl:if>
    </xsl:template>
    
    <xsl:template name="hit-subprogram" >
         <a>
            <xsl:attribute name="href">
                <xsl:call-template name="hit-href">
                    <xsl:with-param name="url" select="concat(../uri, '/', @path)"/>
                </xsl:call-template>
            </xsl:attribute>
            <xsl:value-of select="@title"/>
         </a>
    </xsl:template>

Exemple d'affichage :

Pour afficher/cacher les parcours "autres", en cliquant sur le lien "Voir les parcours", ajoutez dans votre CSS

.other-subprograms a.collapsed + ul { display: none }
            
.other-subprograms > a > span:before {content: '« '}
.other-subprograms a.collapsed > span:before { content: '» '}