The class org.ametys.plugins.linkdirectory.LinkDirectoryXSLTHelper provides a number of methods accessible from XSLT files, facilitating the integration of directory link information.
Add the xmlns namespace to the header of the XSL file:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/" xmlns:link="org.ametys.plugins.linkdirectory.LinkDirectoryXSLTHelper" exclude-result-prefixes="link"/>
Call any of the functions defined below, using link:functionName(argument1, argument2)
Description:
Gets all the colors available for links in the directory (for the current site or a given site).
Signatures :
MapElement getColors()
MapElement getColors(String siteName)
Arguments:
Name |
Type |
Description |
---|---|---|
siteName |
String |
The name of the site. |
Example:
<colors> <1> <main>#FF66FF</main> <text>#FFFFFF</text> </1> <2> <main>#CC33CC</main> <text>#FFFFFF</text> </2> [...] </colors>
Description:
Returns the default color index (for the current site or a given site)
Signatures :
String getDefaultColorIndex()
String getDefaultColorIndex(String siteName)
Arguments:
Name |
Type |
Description |
---|---|---|
siteName |
String |
The name of the site. |
The #getColors and #getDefaultColorIndex methods can be used, for example, to select a color from the list of possible colors when a user creates a personal link.
From versions 2.19.1 and 2.20.0
Description :
Return links to the directory, without access restrictions, for a given theme.
Signature :
NodeList getLinks(String siteName, String lang, String themeName)
Arguments:
Name |
Type |
Description |
---|---|---|
siteName |
String |
site name |
lang |
String |
the language |
themeName |
String |
theme identifier (e.g. SOCIAL_NETWORK) |
Example of use:
<xsl:variable name="links" select="link:getLinks($site, $lang, 'SOCIAL_NETWORKS')"/> <ul> <xsl:for-each select="$links/link"> <li> <a> <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:value-of select="@title"/> </a> </li> </xsl:for-each> </ul>
From version 2.20.0
Description :
Returns directory links, accessible to the current user, for a given theme.
Only user access is checked. Users' personal links are not retrieved and no user preferences are taken into account when ordering or hiding links.
From version 2.27.0 this method also takes into account the IP restriction configured for internal links.
If an IP address range is configured in the site parameters:
Please note that this method can only be used on limited-access, non-cacheable pages.
Signature :
NodeList getLinksForCurrentUser(String siteName, String lang, String themeName)
Arguments:
Name |
Type |
Description |
---|---|---|
siteName |
String |
site name |
lang |
String |
the language |
themeName |
String |
theme identifier (e.g. SOCIAL_NETWORK) |
Example of use:
<xsl:variable name="links" select="link:getLinks($site, $lang, 'SOCIAL_NETWORKS')"/> <ul> <xsl:for-each select="$links/link"> <li> <a> <xsl:attribute name="href"> <xsl:choose> <xsl:when test="@disabled= 'true'">javascript:void()</xsl:when> <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="@disabled= 'true'"> <xsl:attribute name="class">disabled</xsl:attribute> </xsl:if> <xsl:value-of select="@title"/> </a> </li> </xsl:for-each> </ul>
From version 2.27.0
Description :
Determines whether the current user's IP address matches the internal IP address range configured in the site settings.
If no IP restriction is set, this method returns true.
Please note that this method can only be used on limited-access, non-cacheable pages.
Signature :
boolean isInternalIP()
Example of use:
<xsl:if test="link:isInternalIP()"> <a href="https://internal.url">Un lien interne</a> </xsl:if>