Manuel de mise à jour 1.3.0


Migration technique 1.2.0 vers 1.3.0

Des modifications ont été apportées au format de stockage afin de "typer" les liens et ainsi pouvoir créer des liens vers une URL externe ou une page Ametys.

Après mise à jour du plugin et avant le premier démarrage de l'application, le fichier custom_nodetypes.xml (qui se trouve dans le dossier <chemin_repository>/repository/nodetypes) doit être effacé. Le fichier sera automatiquement recréé au redémarrage du serveur.

Puis exécutez le script suivant dans la console du repository, pour positionner la propriété "type" sur vos liens existants:

var qm = session.getWorkspace().getQueryManager();
var query = qm.createQuery("//element(*, ametys:directoryLink)", javax.jcr.query.Query.XPATH); 
var nodes = query.execute().getNodes();     

var count = 0;
while (nodes.hasNext())
{
    var node = nodes.next();

    if (!node.hasProperty('ametys-internal:url-type'))
    {
        node.setProperty('ametys-internal:url-type', 'URL');
        count++;
    }
}

session.save();
print(count + " links have been updated.");

Migration graphique 1.2.0 vers 1.3.0

Les liens peuvent désormais être des liens externes ou internes.

Si vous avez surchargé les XSL de rendu de services, vous devrez prendre en compte le nouveau type de lien. Dans le XML d'entrée, l'attribut urlType vous donne le type de lien et l'attribut pageTitle vous donne le titre de la page dans le cas d'un lien interne.

Exemple de XML pour un lien externe

<link id="directoryLink://f9706d93-c83e-44fb-b22b-e012d797a8fe" lang="fr" 
	  url="http://www.ametys.org/forum/" urlType="URL" 
	  title="Forum" content="" alternative="Forum Ametys"
	  pictureAlternative="" pictureType="external" picturePath="picture" pictureName="chat.png" pictureSize="4497" imagType="metadata" 
	  grantAnyUser="false" limitedAccess="false">

Exemple de XML pour un lien interne

<link id="directoryLink://f2124358-528c-4225-81bc-720bf73f9c8a" lang="fr" 
	  url="page://ffae5eeb-9630-4c32-afc4-39cd7584090b" urlType="PAGE" 
	  title="Services en ligne" content="" pageTitle="Mes services en ligne" alternative="Programme" 
	  pictureAlternative="" pictureType="external" picturePath="picture" pictureName="services.jpg" pictureSize="5150" imageType="metadata" 
	  grantAnyUser="false" limitedAccess="false">

Par exemple :

<xsl:choose>
     <xsl:when test="@urlType = 'PAGE'">
     	<a href="{resolver:resolve('page', @url)}" title="{@alternative}">
        	<xsl:choose>
            	<xsl:when test="normalize-space(@title) != ''"><xsl:value-of select="@title"/></xsl:when>
                <xsl:otherwise><xsl:value-of select="@pageTitle"/></xsl:otherwise>
            </xsl:choose>
        </a>
        </xsl:when>
        <xsl:otherwise>
        	<a onclick="window.open(this.href); return false;" href="{@url}" title="{@alternative}">
            	<xsl:choose>
                	<xsl:when test="normalize-space(@title) != ''"><xsl:value-of select="@title"/></xsl:when>
                    <xsl:otherwise><xsl:value-of select="@url"/></xsl:otherwise>
                </xsl:choose>
            </a>
        </xsl:otherwise>
</xsl:choose>
Retour en haut