Gestion des liens de l'annuaire internes (2)


Cette page ne doit être appliquée que si le script de migration assistée vous demande de passer la migration manuelle code.20250718.INTRANETSEARCH.InternalLinks

A partir de la version 2.8.0 la charte Intranet Search supporte les liens/applications internes.

Un lien de l'annuaire est "interne" dès lors qu'une plage d'adresse IP est définie dans le paramètre de site "Restriction d'IP" de la catégorie "Annuaire de lien" et qu'une url interne, et uniquement interne, est définie pour un lien

En dehors de la plage d'IP interne, le lien doit donc être inactif. 
Les liens inactifs sont saxés avec l'attribut "disabled".

Jusqu'à présent ces liens n'étaient pas gérés par la charte graphique.
C'est désormais le cas avec les règles suivants:

  • pour les notifications, accès rapides et parcours utilisateurs les liens "disabled" n'apparaissent pas
  • pour les applications métiers, RH, favoris, ... du menu utilisateur les liens sont présents mais sont grisés, non cliquable, sans style au survol et avec un tooltip "Ce lien est inaccessible"

Cette migration est conseillée mais n'est pas obligatoire si la notion de lien interne n'est pas utilisé.

Si vous avez atterri sur cette page c'est que votre charte surcharge au moins l'un des templates XSL suivant:

  • <xsl:template name="top-links">
  • <xsl:template name="user-right-menu-links">
  • <xsl:template name="acces-rapides-ul">
  • <xsl:template match="link" mode="config">

Pour les 3 premiers, la migration est très simple, elle consiste à filtrer les liens sur l'attribut "disabled".
Par exemple, remplacez: 

<xsl:apply-templates select="/cms/inputData/linkDirectory[@id='topMenu']/links/link" mode="top-links">

par

<xsl:apply-templates select="/cms/inputData/linkDirectory[@id='topMenu']/links/link[not(@disabled)]" mode="top-links">

Pour le dernier qui correspond aux liens des applications métiers, RH ou favoris, les attribut href, title et target sont maintenant traités dans trois templates séparés:

<xsl:apply-templates select="." mode="app-href-attr"/>
<xsl:apply-templates select="." mode="app-title-attr"/>
<xsl:apply-templates select="." mode="app-target-attr"/>

Le caractère inactif (disabled) des liens est traités dans ces templates. Il faut donc remplacer le calcul du href, title et target par l'appel à ces templates:

<a data-list-link="" class="ametys-tools-list__link" data-serverid="{@id}">
                <xsl:attribute name="title">
                    <xsl:choose>
                        <xsl:when test="@alternative != ''"><xsl:value-of select="@alternative"/></xsl:when>
                        <xsl:otherwise><xsl:value-of select="@title"/></xsl:otherwise>
                    </xsl:choose>
                </xsl:attribute>
                <xsl:attribute name="href">
                    <xsl:choose>
                        <xsl:when test="@urlType = 'PAGE'">
                            <xsl:value-of select="resolver:resolve('page', @url)"/>
                        </xsl:when>
                        <xsl:otherwise>
                            <xsl:value-of select="@url"/>
                        </xsl:otherwise>
                    </xsl:choose>
              </xsl:attribute>
              <xsl:if test="@urlType != 'PAGE'"><xsl:attribute name="target">_blank</xsl:attribute></xsl:if>
<!-- [...] -->
</a>

devient

<a data-list-link="" class="ametys-tools-list__link" data-serverid="{@id}">
              <xsl:apply-templates select="." mode="app-href-attr"/>
              <xsl:apply-templates select="." mode="app-title-attr"/>
              <xsl:apply-templates select="." mode="app-target-attr"/>
<!-- [...] -->
</a>

Ticket JIRA : https://issues.ametys.org/browse/SKINSEARCH-371 

Retour en haut