Le CMS Ametys met à disposition des intégrateurs de nombreuses méthodes accessibles à partir des fichiers XSLT, facilitant l'intégration des chartes graphique.

  1. Comment utiliser ces méthodes ?
  2. Structures 
    1. getParentProgramStructure
    2. getParentProgram
    3. getProgramStructure 
    4. getProgram
    5. getSubProgramStructure
    6. parentProgramId
    7. odfRootPage
  3. Eléments de formation
    1. odfPDFUrl
    2. getCertificationLabel
    3. getCumulatedHours
    4. getEducationalBooklet
    5. areSkillsUnavailable
    6. getProgramPaths
  4. Tables de référence
    1. getCode
    2. getEntryId
    3. getTableRefItems
  5. Divers
    1. degreeLabel
    2. getRootOrgUnitId
    3. getOrgUnitIdByUAICode

Comment utiliser ces méthodes ?

Ajouter ce namespace "odf" dans l'entête des fichiers XSL comme suit:                       

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"   
         ...   
         xmlns:odf="org.ametys.plugins.odfweb.xslt.OdfXSLTHelper"   
         ...   
         extension-element-prefixes="... ametys ...">   

De sorte à pouvoir appeler n'importe quelle fonction définie ci-dessous, en utilisant "ametys:functionName(argument1, argument2)"

Structures 

getParentProgramStructure

Description :
Retourne autant de nœuds <program> qu'il y a de formations intégrant ce sous-programme, incluant la structure des sous-programmes jusque la profondeur indiquée.
Si vous connaissez l'identifiant de la formation souhaitée, utilisez plutôt la méthode getProgramStructure.

Signature :
NodeList getParentProgramStructure (String subprogramId, int depth)

Arguments :

Nom

Type

Description

subprogramId

String

Identifiant du sous-programme

depth

int

Profondeur 

Indiquer un chiffre positif pour récupérer la structure des sous-programmes jusqu'à une profondeur de depth. 

Indiquer un chiffre négatif pour récupérer la structure complète récursivement. 

Ce paramètre concerne uniquement les sous-programmes. 

Exemple : voir getProgramStructure

getParentProgram

Description :
Retourne autant de noeuds <program> qu'il y a de formations intégrant ce sous-programme.
Si vous connaissez l'identifiant de la formation parente, utilisez plutôt la méthode getProgram.

Signature :
NodeList getParentProgram (String subprogramId)

Arguments :

Nom

Type

Description

subprogramId

String

Identifiant du sous-programme

Exemple : voir getProgram  

getProgramStructure 

Description :
Retourne un nœud <program> contenant la structure de la formation jusqu'à une profondeur de depth

Signature :
NodeList getProgramStructure (String programId, int depth)

Arguments :

Nom

Type

Description

programId

String

Identifiant de la formation

depth

int

Profondeur

Indiquer un chiffre positif pour récupérer la structure jusqu'à une profondeur de depth. 

Indiquer un chiffre négatif pour récupérer la structure complète récursivement. 

Ce paramètre concerne uniquement les sous-programmes. 

Exemple :

<program ects="content://766a60bb-0048-4c0f-9018-9a5cf3cb5a6a" code="H7AHQYZO" catalog="2013-2017" degree="content://47383714-55b6-441b-b43c-4ef27db82e1c" id="programContent://25be5972-5e5a-4068-bd30-dd97b400c8ff" title="Licence Mathématiques"> 
    <subprogram ects="content://8cbc13c3-b44d-42a4-842f-71456b3d9a1e" code="H7AHWVC8" catalog="2013-2017" id="subProgramContent://627f8540-be41-4797-bd18-82f9c09be35e" title="L3 parcours Mathématiques générales">
        <container code="K42UDTSB" catalog="2013-2017" id="container://c10dd651-afbb-4913-b813-78430749c960" title="L3 parcours Mathématiques générales">
            <container code="K42UR3PX" catalog="2013-2017" id="container://19d5cb9b-7f70-45b5-bb95-ff188cdd85db" title="Semestre 5">
                <courselist code="LMP1A3M" catalog="2013-2017" id="courseListContent://a18375e2-c581-430b-88f6-4817f77b71e5" title="Math. Options 3e année" type="MANDATORY">
                    <course code="H7AI4Z0J" catalog="2013-2017" name="course-fruai3182988bcoh7ai4z0j" id="courseContent://03a77422-20d2-4a7b-a315-74de76c327fa" title="Arithmétique"></course>
                    <!-- // ... -->
                </courselist>
            </container>
        <container code="K42UOQ9N" catalog="2013-2017" id="container://466926e2-6107-43a5-af73-0539263f0178" title="Semestre 6">
            <!-- // ... -->
        </container>
    </container>
</subprogram>
<subprogram code="H7AHX5R3" catalog="2013-2017" id="subProgramContent://b503cb25-5a69-4596-b7bb-5d9cdff18af4" title="Parcours Mathématiques pour l’assurance et la finance">
    <!-- // ... -->
</subprogram>
</program>

getProgram

Description :
Retourne un nœud <program> contenant les informations de la formation

Signature :
Node getProgram (String programId)

Arguments :

Nom

Type

Description

programId

String

Identifiant du programme

Exemple d'information retournée:

<program ects="content://766a60bb-0048-4c0f-9018-9a5cf3cb5a6a" 
         code="H7AHQYZO" 
         catalog="2013-2017" 
         degree="content://47383714-55b6-441b-b43c-4ef27db82e1c" 
         id="programContent://25be5972-5e5a-4068-bd30-dd97b400c8ff" 
         title="Licence Mathématiques">
</program>          

getSubProgramStructure

Description :
Retourne un noeud <subprogram> contenant la structure du sous-programme , incluant la structure des sous-programmes.

Si l'attribut depth est précisé, la structure est retournée jusqu'à une profondeur de depth.  

Sans attribut depth, la structure est complète. 

Signature :
Node getSubProgramStructure(String subprogramId)

Node getSubProgramStructure(String subprogramId, int depth)

Arguments :

Nom

Type

Description

subprogramId

String

Identifiant du sous-programme

depth

int

Profondeur

Indiquer un chiffre positif pour récupérer la structure jusqu'à une profondeur de depth. 

Indiquer un chiffre négatif pour récupérer la structure complète récursivement. 

Ce paramètre concerne uniquement les sous-programmes. 

Exemple :

<subprogram ects="content://8cbc13c3-b44d-42a4-842f-71456b3d9a1e" code="H7AHWVC8" catalog="2013-2017" id="subProgramContent://627f8540-be41-4797-bd18-82f9c09be35e" title="L3 parcours Mathématiques générales">
    <container code="K42UDTSB" catalog="2013-2017" id="container://c10dd651-afbb-4913-b813-78430749c960" title="L3 parcours Mathématiques générales">
        <container code="K42UR3PX" catalog="2013-2017" id="container://19d5cb9b-7f70-45b5-bb95-ff188cdd85db" title="Semestre 5">
            <courselist code="LMP1A3M" catalog="2013-2017" id="courseListContent://a18375e2-c581-430b-88f6-4817f77b71e5" title="Math. Options 3e année" type="MANDATORY">
                <course code="H7AI4Z0J" catalog="2013-2017" name="course-fruai3182988bcoh7ai4z0j" id="courseContent://03a77422-20d2-4a7b-a315-74de76c327fa" title="Arithmétique"></course>
<!-- // ... -->
            </courselist>
        </container>
        <container code="K42UOQ9N" catalog="2013-2017" id="container://466926e2-6107-43a5-af73-0539263f0178" title="Semestre 6">
            <!-- // ... -->
        </container>
    </container>
</subprogram>

parentProgramId

Description :
Retourne l'identifiant du programme parent à partir de la page courante. 

La méthode retourne null le programme n'est pas trouvé. 

Signature :
String parentProgramId()

odfRootPage

Description :
Retourne l'identifiant de la page racine ODF pour un site spécifique, une langue, et éventuellement un catalogue. 

S'il y a plusieurs pages racines, c'est la première de la liste qui est retournée

Si la page racine de l'ODF n'est pas trouvée, la méthode retourne null

Signature :
String odfRootPage (String siteName, String language)

String odfRootPage (String siteName, String language, String catalog)

Arguments :

Nom

Type

Description

siteName

String

Nom du site

language

String

Langue

catalog

String

Nom du catalogue

Eléments de formation

odfPDFUrl

Description :
Retourne l'URL du PDF d'un programme ou d'un sous-programme.

Si l'identifiant du contenu ne correspond pas à un programme ou à un sous-programme, la méthode renvoie une chaîne vide.

Signature :
String odfPDFUrl (String contentId, String siteName)

Arguments :

Nom

Type

Description

contentId

String

Identifiant du programme ou du sous-programme

siteName

String

Nom du site

Exemple d'utilisation :

<a href="{odf:odfPDFUrl($programId, $site)}" target="blank" >Télécharger le PDF</a>

getCertificationLabel

Description :
Retourne le libellé de la certification du programme ou du sous-programme. 

Si la formation n'est pas certifiée, la méthode retourne null. 

Signature :
String getCertificationLabel(String abstractProgramId)

Arguments :

Nom

Type

Description

abstractProgramId

String

Identifiant du programme ou du sous-programme

Exemple d'utilisation :

<xsl:variable name="label" select="odf:getCertificationLabel(@id)"/>

<xsl:if test="$label != ''">
    <xsl:variable name="labelImgPath" select="concat('img/labels/', $label, '.svg')"/>
    <img class="ametys-main-banner-label__img" src="{ametys:skinURL($labelImgPath)}" alt="" />
</xsl:if>

getCumulatedHours

A partir de Ametys 4.4

Description :
Retourne le cumul des heures sur le contenu identifié en paramètre. 

Pour cela, l'algorithme descend l'arborescence du contenu fourni en paramètre jusqu'aux contenus ayant le champ nbHours renseigné. 

Les heures d'enseignement sont lues uniquement si l'ELP est au dernier niveau.

Pour les listes d'ELP, le calcul est effectué comme suit selon le type de liste : 

  • Liste obligatoire : pris en compte dans le calcul
  • Liste facultative : ignoré dans le calcul
  • Liste à choix  : moyenne pondérée par le nombre de choix 

Signature :
Double getCumulatedHours(String contentId)  

Arguments :

Nom

Type

Description

contentId

String

Identifiant du contenu sur lequel le calcul est effectué

getEducationalBooklet

Cette méthode est disponible à partir de la version 4.4

En 4.4 et 4.5 cette méthode ne peut être appelée que pour un parcours (sous-programme)
A partir de la version 4.6 cette méthode peut être appelée sur une formation, parcours, conteneur ou ELP

Description :
Retourne le livret pédagogique (renommé catalogue des cours en 4.6) au format PDF le plus récent pour:

  • un parcours pour les versions inférieure à 4.6
  • une formation, un parcours, un conteneur ou un ELP pour les versions 4.6+

Si l'élément n'existe pas ou s'il n'existe pas de catalogue, la méthode renvoie null. 

Signature :
AmetysNodeList getEducationalBooklet (String programItemId)

Arguments :

Nom

Type

Description

programItemId

String

Identifiant du sous-programme

Exemple :

<pdf filename="Livret pédagogique L3 parcours Mathématiques générales - 2020-11-27.pdf"
    lastmodified="2020-11-27T17:06:26.000Z" 
    mime-type="application/pdf" 
    multiple="false" 
    path="educational-booklets[1]/pdf" 
    size="135670" 
    type="attribute" 
    typeid="file" 
    uri="educational-booklets[1]/pdf">
</pdf>

Exemple d'utilisation:

<xsl:variable name="educationalBooklet" select="odf:getEducationalBooklet(/view/content/@id)"/>
<a href="{resolver:resolve($educationalBooklet/@type, $educationalBooklet/@path, 'true')}">
<xsl:value-of select="$educationalBooklet/@filename"/>
</a>

areSkillsUnavailable

A partir de Ametys 4.6

Description :
Retourne true si l’élément de formation dans le contexte de sa page est exclu de l'affichage des compétences.

Signature :
boolean areSkillsUnavailable(String programItemId, String programPageItemId)  

Arguments :

Nom

Type

Description

programItemId

String

Identifiant de l'élément de formation

programPageItemId

String

Identifiant de la page dans lequel se situe l'élément de formation. Si non renseigné, les compétences seront toujours visibles.

getProgramPaths

A partir de Ametys 4.6

Description :
Retourne tous les chemins d'un l’élément de formation jusqu'à la ou les formations parentes.
Les chemins sont construit à partir du titre les éléments et du séparateur transmis.
Ex: Master Droit public > Parcours Sécurité et défense > Année 1 

Signature :
boolean getProgramPaths(String programItemId, String separator)  

Arguments :

Nom

Type

Description

programItemId

String

Identifiant de l'élément de formation

separator

String

Séparateur à utiliser (ex: ">")

Tables de référence

getCode

Description :
Retourne le code associé à une entrée de table de référence. 

Si l'entrée n'est pas trouvée, la méthode retourne null. 

Signature :
String getCode (String tableRefEntryId)

Arguments :

Nom

Type

Description

tableRefEntryId

String

Identifiant de l'entrée de la table de référence

Exemple d'utilisation:

<xsl:variable name="degreeId" select="metadata/degree/@id"/>
<xsl:variable name="degreeCode" select="odf:getCode($degreeId)"/>

getEntryId

Description :
Retourne l'identifiant d'une entrée de table de référence à partir de son code.

La méthode retourne null si l'entrée n'est pas trouvée. 

Signature :
String getEntryId (String tableRefId, String code)

Arguments :

Nom

Type

Description

tableRefId

String

Identifiant de la table de référence

code

String

Code de l'entrée de la table de référence

Exemple :

<xsl:variable name="degreeId" select="odf:getEntryId('odf-enumeration.Degree', 'XA')"/>

getTableRefItems

Description :
Retourne les entrées d'une table de référence

Signature :
Node getTableRefItems (String tableRefId, String lang)

Node getTableRefItems (String tableRefId, String lang, boolean ordered)

Arguments :

Nom

Type

Description

tableRefId

String

Identifiant de la table de référence

lang

String

Langue à utiliser pour les libellés

ordered

booléen

Si ce booléen est positionné à true, alors les entrées seront triés selon l'attribut "ordre". 

Exemple :

<items id="odf-enumeration.Domain">
    <item code="STS" id="content://305e6e9e-1ec2-4adb-8ffc-2274ab807907" title="Sciences, Technologies, Santé"></item>
    <item code="ALL" id="content://47bb25ce-234c-4ed4-9e29-ce2c0227ddbe" title="Arts, Lettres, Langues"></item>
    <item code="SHS" id="content://64e192e6-31cd-4a12-88b4-d8d38267bce5" title="Sciences humaines et sociales"></item>
    <item code="DEG" id="content://fb0f2f0e-fc29-4ceb-8d2b-70bf1ef3b729" title="Droit, Economie, Gestion"></item>
    <item code="HD" id="content://fe887b17-fc96-42ac-a698-0e9868e56e7c" title="Hors domaines de formation"></item>
    <item code="STA" id="content://34170b44-174a-44fc-937b-c6c56d8e8910" title="Sciences et Techniques des Activités Physiques et sportives"></item>
</items>

Divers

degreeLabel

Description :
Retourne le libellé du diplôme associé à la valeur CDM du diplôme. 

Si la clef n'est pas trouvée, la méthode retourne une chaîne vide

Signature :
String degreeLabel (String cmdValue)

String degreeLabel (String cmdValue, String language)

Arguments :

Nom

Type

Description

cmdValue

String

Clef du diplôme

language

String

Langue

Exemple d'utilisation :

<xsl:variable name="degreeLabel" select="odf:degreeLabel('licence', $lang)"/>

getRootOrgUnitId

Description :
Retourne l'identifiant de la composante racine.

Signature :
String getRootOrgUnitId()        

getOrgUnitIdByUAICode

A partir de Ametys ODF 4.3.11

Description :
Retourne l'identifiant de la composante correspondant au code UAI ou null si aucune composante n'a été trouvée.

Signature :
String getOrgUnitIdByUAICode(String uaiCode)  

Arguments :

Nom

Type

Description

uaiCode

String

Code UAI de la composante

Retour en haut