Le canal annuaire
La configuration
Structure générale
La configuration de ce canal est décrite dans un fichier xml : CAnnuaire.xml.
Une dtd lui est associée : CAnnuaire.dtd.
Le fichier CAnnuaire.xml décrit est bien sûr un exemple. Deux
documents xml associés à cet exemple sont également disponible
: ListeDisciplines.xml et ListeFormations.xml.
La dtd de l'annuaire contient de nombreux commentaires; il est recommandé
de les consulter.
Le fichier CAnnuaire.xml décrit le paramétrage du ou des annuaire(s)
qui sont accessibles à ce canal. Il est lu une seule fois au démarrage
du portail.
Sa structure générale est la suivante (la cardinalité
de chaque élément est indiquée) :
<directories> |
<!-- root element--> |
|
|
|
|
|
|
|
<languages> |
<!-- ... (1,1) --> |
|
|
|
|
|
|
<varsOfText> |
<!-- ...(1,n) --> |
|
|
|
|
|
|
|
|
|
<varOfText> |
<!-- ...(1,n) --> |
|
|
|
|
|
|
</varsOfText> |
|
|
|
|
|
|
|
<language> |
<!-- ...(1,n) --> |
|
|
|
</languages> |
|
|
|
|
|
|
|
|
<tables> |
<!-- listes de tables a monter en memoire (0,1) --> |
|
|
|
|
|
|
<table> |
<!-- description d'une table (1,n) --> |
|
|
|
|
|
|
|
|
|
<item> |
<!-- description d'un item de la table (0,n) --> |
|
|
|
</tables> |
|
|
|
|
|
|
|
|
<directory> |
<!-- description d'un annuaire. (1,n) --> |
|
|
|
|
|
|
<server> |
<!-- serveur ldap a atteindre (1.1) --> |
|
|
|
|
|
|
<request> |
<!-- permet de batir la requete et d'afficher le formulaire de saisie
(1,1) --> |
|
|
|
|
|
|
|
|
|
<elemOfRequest> |
<!-- un element de la requete (1,n) --> |
|
|
|
|
|
|
</request> |
|
|
|
|
|
|
|
<card> |
<!-- decrit la fiche finale, et la liste intermediaire eventuelle (1,1)
--> |
|
|
|
|
|
|
|
|
|
<line> |
<!-- une ligne de la fiche individu (1,n) --> |
|
|
|
|
|
|
</card> |
|
|
|
|
</directory> |
|
</directories> |
|
Retour au sommaire.
directories
C'est l'élément racine.
attributs :
- ttl : facultatif. C'est la période de raffraichissement des
tables dynamiques (ldap ou xml), en secondes.
par défaut : 86400 (donc un jour)
tables
Facultatif. Cet élément permet de décrire et de remplir
des tables mémoire qui seront utilisées par le canal annuaire.
Les tables sont bien sûr constituées de plusieurs enregistrements
(items).
Un item comprend une valeur (value) et éventuellement un code associé
(code).
pas d'attributs
languages
Paramétrage pour l'internationnalisation.
pas d'attribut
varsOfText
Liste des variables diponibles dans les fichiers de langue.
varOfText
Paramétrage pour l'internationnalisation.
attribut :
- name : obligatoire. Nom de la variable qui contient le texte
- value : obligatoire. Texte par défaut
language
Liste des langues disponibles pour le canal
attribut :
- langId : obligatoire. Identifiant de la langue (ex : fr_FR,en_EN
...)
table
Décrit et donne les informations pour remplir une table.
Il existe 3 types de tables
- static : le contenu est décrit dans ce fichier 'CAnnuaire.xml'.
- ldap : la table est construite à l'aide d'une requête
ldap
- xml : la table est construite à l'aide d'un fichier xml externe
Pour ces 2 derniers cas, les tables sont raffraichies périodiquement
(paramètre ttl de directories). Ceci n'est pas encore traité.
attributs :
- name : obligatoire. Le nom de la table
- type : facultatif. le type de table : static, ldap ou xml. static
par défaut
- base : facultatif . Nécessaire si LDAP. C'est la base de recherche
LDAP
- scope : facultatif. Utile uniquement si LDAP. C'est l'étendue
de la recherche LDAP. sub, one base. Valeur par défaut : sub (subtree,
donc recherche dans toute l'arborescence fille).
- filter : facultatif. Nécessaire si LDAP. C'est le filtre de
recherche LDAP associé à cette table.
- attrCode : facultatif. Utile uniquement si LDAP, mais pas nécessaire.
Précise l'attribut LDAP qui sera utilisé pour enrichir le 'code'
de la table.
- attrValue : facultatif. Nécessaire si LDAP. Précise
l'attribut LDAP qui sera utilisé pour enrichir le 'value' de la table.
- file : facultatif. Nécessaire si table de type xml. Il contient
le nom du fichier xml associé. Ne mettez que le nom du fichier et placez
le dans le répertoire : "/properties/xmlTables/"
remarque :
Dans le cas d'une table xml : le format de celle-ci est figé (voir cet
exemple) ; il est de la forme :
<list>
<item code="CNU01" value="Droit Privé et Sciences Criminelles" />
<item ...>
</list>
l'attribut 'code' est facultatif. S'il n'est pas présent, il ne doit
l'être dans aucun 'item'.
L'attribut 'value' contient la valeur de cet item.
Voir l'élément 'item' du fichier CAnnuaire.xml : la structure
est identique
item
C'est un enregistrement d'une table de type static.
attributs :
- value : obligatoire. Va enrichir la partie 'valeur' de l'enregistrement.
- code : facultatif. Va enrichir la partie 'code' de l'enregistrement.
S'il n'est pas présent, il ne doit l'être pour aucun item de
cette table
directory
Décrit un annuaire particulier.
attributs :
- name : obligatoire. Un 'code' qui identifie un annuaire particulier
(ex : name="Pers").
- title : obligatoire. C'est l'intitulé de l'annuaire, tel qu'il
apparaîtra dans la liste déroulante.(Mettre le nom d'une variable d'internationnalisation)
- link : facultatif. Contient une url http qui pointe vers un annuaire
externe plus conséquent.
- intro : facultatif. Contient une phrase d'alerte à mettre dans le
formulaire. (Mettre le nom d'une variable d'internationnalisation)
exemple : Cet annuaire mentionne les personnes ayant accepté d'y figurer
- allowEwport : facultatif. Précise si l'utilisateur a le droit d'exporter
les résultats en format excel.
server
Précise les paramètres de connexion LDAP pour cet annuaire.
attributs :
- url : obligatoire. l'url LDAP de connexion. Peut prendre en compte
la redondance de serveurs LDAP (réplicas)
ex : ldap://ldap1.univ.fr/dc=univ,dc=fr ldap://ldap2.univ.fr/dc=univ,dc=fr
- binddn : facultatif. le DN de connexion dans l'annuaire, si non anonyme.
- bindpass : facultatif. Le mot de passe associé au DN précédent
- secure : facultatif. Valeurs : true ou false. implicite = false.
true si utilisation de SSL ou TLS pour la connexion
request
Cet élément permet de définir la requête LDAP à
générer pour la recherche dans l'annuaire.
Il permet également de construire le formulaire d'interrogation.
Il est composé d'elemOfRequest. La requête sera composée
d'un "et" (&) avec chaque élément de requête non vide
généré.
attributs :
- base : obligatoire. C'est la base de recherche dans l'annuaire
- scope : facultatif. C'est l'étendue de la recherche : base,
one, sub. Par défaut : sub.
- maxEntries : facultatif. C'est le nombre maximum d'entrées
qu'on accepte de retourner.
- identifiant : facultatif. Obligatoire si on veut passer de moder
tableau au mode fiche dans les résultats. C'est le nom du champ LDAP
qui permet d'identifier une personne.
elemOfRequest
C'est un élément d'une requête. Il permet d'une part, de
construire éventuellement un champ du formulaire de saisie, et d'autre
part, un élément de la requête finale.
Il existe 4 types d'éléments :
- type direct. Contient un élément de recherche 'statique',
non paramétrable. Dans ce cas, l'élément de requête
n'est pas visible dans le formulaire de saisie.
- type text. Donne lieu à affichage d'un champ de saisie (text en html).
La requête sera construite à l'aide du champ de saisie associé
(%s), si celui-ci est non vide.
- type listTable. Donne lieu à affichage d'une liste déroulante
(select - option en html).il y a utilisation d'une table prédéfinie.
Les 'valeurs' de la table permettront de générer la liste déroulante
; Si un élément de la liste est sélectionné, il
y aura génération d'un élément de requête,
contruit grâce au code (%c) ou a la valeur (%v) séléctionnée.
- type textTable. Donne lieu à affichage d'un champ de saisie (text).
Le contenu de ce champ, s'il est saisi, donne lui à recherche dans
les valeurs de la table associée.
- Si un seul item de la table correspond au critère de recherche,
l'élément de requête sera générée
à l'aide du code (%c) ou de la valeur (%v) de l'item
concerné.
- Si aucun item ne correspond, la requête globale ne retournera
aucune entrée.
- Si n items correspondent à ce critère (n > 1), l'élément
de requête sera un 'ou' LDAP avec les n sous-éléments
de requête générés. Voir l'exemple en fin de
document pour mieux comprendre l'utilité.
attributs :
- type : facultatif. direct, text, listTable, textTable. par défaut
: text.
- var18In : facultatif. Obligatoire si type != direct. C'est le 'label'
associé avec cette requête ; IL sera affiché en label
dans le formulaire de saisie, la valeur provient d'un texte déclaré
dans les langues.
- table : facultatif. Obligatoire si type=listTable ou textTable. C'est
le nom de la table associée.
- filter : obligatoire. C'est l'élément de filtre ldap
associé.
- si type=text : l'expression "%s" est remplacée par
la valeur du champ saisi.
- si type=listTable ou textTable : l'expression "%c" est remplacé
par le code de l'élément de table sélectionné,
et "%v" par sa valeur.
- searchValue : facultatif. Obligatoire si type = textTable. C'est
le critère de recherche dans les 'valeurs' de la table associée.
La recherche n'est pas sensible à la casse. Le caractère "*"
est autorisé.
- minChar : Facultatif. Utile pour les type text et textTable. C'est
le nombre minimal de caractère qu'on accepte pour ce champ de saisie
(si celui-ci est saisi).
- delStar : Facultatif. false ou true. par défaut : true. Utile
pour les type text et textTable. Si true, retire tous les caractères
"*" qui seraient éventuellement présents dans la saisie
de l'utilisateur.
- approx : facultatif. false ou true. par défaut : false. Si
true, un bouton de 'recherche approximative' est proposé dans le formulaire;
si ce bouton est coché par l'utilisateur, un algo de recherche approximative
est généré pour cet élément.
Il ne peut y avoir au maximum qu'un seul élément ayant approx=true;
cet élément est nécessairement de type text.
card
Permet de définir la fiche finale de l'utilisateur, et éveuellement,
le tableau intermédiaire si plusieurs utilisateurs répondent au
critére de la recherche.
attributs :
- maxCard : facultatif. Nombre maximum de fiche par page avant de passer
en mode tableau.
- tri :facultatif. Champs LDAP qui sert de tri
- link : facultatif. contient un lien http vers un annuaire externe
plus détaillé. Le symbole "%uid" sera remplacé
par la valeur de l'identifiant de la personne à afficher.
line
C'est une ligne de la fiche finale.
2 types :
- direct : le résultat est directement l'affichage d'un attribut LDAP
- table : un attribut LDAP contient la clé ou la valeur d'une table
ci-dessus. C'est la valeur associée à cette clé qui sera
affichée.
attributs :
- type : facultatif. direct ou table. Par défaut : direct
- var18In : obligatoire. C'est le label associé à cette
ligne. Il sera affiché en entete de colonne et en face de chaque champs.
- table : facultatif. Obligatoire si type table. C'est le nom de la
table associée à cette ligne.
- attribute : obligatoire. contient le nom de l'attribut LDAP qui servira
à l'affichage.
- si type = direct : attribute contient le nom de l'attribut correspondant;
c'est cela qui sera affiché.
- si type = table : voir linkTable
- list : facultatif. false ou true. défaut = false. Si true,
cette 'line' servira également à l'élaboration de la
liste intermédiaire dans le cas de réponses multiples.
- linkTable : facultatif. code ou value. Défaut = code. N'est
utile que pour type=table. Indique que l'attribut 'attribute' permet une recherche
dans la table sur le code ou sur la valeur.
- tabToCard : facultatif. false ou true. défaut = false. Si
true, ce champ sera clicable depuis la feuille de présentation des
résultats par tableau pour acceder à la fiche détaillée.
Si ce champ est rempli, il faut obligatoirement remplir le champ "identifiant"
du request.
- isMail : facultatif. false ou true. défaut = false. Si true,
ce champ sera clicable et appellera le canal mailto en servant. ATTENTION
il faut donc que le canal MailTo soit déployé.
- wrapToAscii : facultatif. false ou true. défaut = false. Si true,
ce champ sera "nétoyé" juste après la saisie.
En fait, les caractères non ascii vont être transformés
en ascii. ex : éèê=>e ...etc
Retour au sommaire.