6 La navigation dans le manuel de Kentika est réservée aux utilisateurs identifiés
Catégorisation de résultats sur le web.
Lors de l'affichage d'une liste de résultats, cette option permet de faire figurer une série de critères permettant à l'utilisateur de "naviguer" dans son résultat.
Plusieurs séries de critères peuvent être proposées. Ces derniers sont soit issus des rubriques d'indexation de la notice, soit le contenu de dossiers.
Niveau d'autorisation : Public

Serveur web et catégorisation des résultats
Lors de l'affichage d'une liste, on peut demander à générer un index dynamiquement. Cet index permettra ensuite d'afficher les enregistrements de la liste correspondant à une ou plusieurs valeurs de l'index ainsi calculé.
L'index est calculé une et une seule fois et le résultat est stocké sur le disque. Ceci permet de travailler dans des frames séparées (l'exemple fourni correspond au cas où le résultat est présenté au sein de la page de résultats).
Un index est calculé sur une liste et non sur une sous-liste (liste affinée par la sélection de une ou plusieurs valeurs de l'index).
Données techniques
Le fichier dans lequel se trouve l'index de la liste n est "X_n.blb" et est stocké à coté du fichier "L_n.blb" dans le dossier "TempList".
Un index est composé de 5 tableaux :
- code du champ discriminant (exemple : 141)
- intitulé du champ (exemple : Descripteur)
- numéro d'enregistrement de la valeur discriminante (exemple : 451805)
- intitulé de la valeur discriminante (exemple : Kentika)
- niveau dans l'arborescence (cas du champ descripteur avec déploiement)
Ainsi que d'un tableau à deux dimensions contenant la liste des enregistrements correspondant à chacun des critères.
NB : ces tableaux ne sont pas manipulés en direct mais via une fonction.
Calcul d'un index
Syntaxe
u_select2subList ("rubriques")
Accepte un paramètre : la liste des rubriques sur lequels calculer les index.
Si aucun paramètre n'est passé : Kentika va chercher cette liste dans la fiche paramètre "W_SS". Si ce paramètre est vide et si aucun paramètre n'est passé, Kentika ne calcule rien.
Exemple :
# u_Select
# u_Select2subList("=141,$0317,$1903,$0617,$0116,$0142,$0852,=205")
NB : on peut donc moduler les circonstances dans lesquelles on veut avoir un index en incluant ceci dans un script.
Exemple : pour ne calculer un index que sur les dossiers ou les recherches :
si (http_getparam("list")="folder") | (http_getparam("list")="request")
u_Select2subList("=141,$0317,$1903,$0617,$0116,$0142,$0852,=205")
fin de si
Les champs doivent être séparés par une virgule (,) et peuvent avoir des options.
Lors du calcul d'un index, seuls les champs correspondant à la table courante seront pris en compte. Dans l'exemple ci-dessous, si la table courante est la table document, l'index sera calculé sur le champ 141 (descripteur) et sur $0317 (type de document) ; les autres champs seront ignorés.
Options possibles pour le thesaurus
Dans le cas d'un champ descripteur, on peut demander à ce que les descripteurs trouvés soient filtrés par rapport à certaines branches et hiérarchisés.
Pour un calcul hiérarchisé : mettre * devant le code du champ.
Exemple : *141
Pour limiter la recherche à une ou plusieurs branches, mettre les Record_Num des descripteurs maîtres en les séparant par des /
Exemple : *141/4505/4105 ou 141/4505
Cas particulier des requêtes
On peut calculer un index en croisant avec des requêtes. On peut ainsi générer des index de haut niveau avec des équations complexes. Le champ devra être indiqué comme suit :
R-12-15-17-21
Nom de l'index
Par défaut, le nom de l'index est le nom du champ. On peut cependant spécifier un nom différent en faisant suivre le code du champ par le nom séparé par \.
Exemple :
141\Mot clé
-> calculera l'index sur le champ descripteur et lui donnera comme intitulé "Mot clé"
Affichage d'un index
Une fonction permet de manipuler le résultat d'un index.
Syntaxe
u_subList ("chapitres")
Charge dans les tableaux AT80_1 (code) et AT80_2 (intitulé) les rubriques pour lesquelles des valeurs ont été trouvées.
NB : dans l'exemple ci-dessus appliqué à une liste de documents comportant au moins un descripteur, les tableaux auraient deux lignes : l'une pour "Descripteur" et l'autre pour "Type de document".
NB : cette fonction peut être appelée juste après Select2subList sauf si l'affichage s'effectue dans une autre frame. On prendra soin alors de vérifier que le "idlist" transmis à la frame affichant les index est bien celui de la liste affichée.
u_subList ("disp"; "parametres")
Charge cinq tableaux :
LTx1 : indice - LTx2 : niveau (si thesaurus hiérarchique) - LTx3: nombre d'enregistrements
TTForm_Lib : intitulé de la ligne
TTForm_Att : URL de la ligne
Paramètres :
field:141;URL:List2X.htm;array:LTx1,LTx2,LTx3,TTForm_Lib,TTForm_Att
Si field n'est pas précisé : tous les index seront chargés
Si l'URL n'est pas précisée : l'URL calculée sera sur la base de ListRecord.htm
Si array n'est pas précisé, ce sont les tableaux indiqués ci-dessus qui seront chargés (il n'est pas recommandé de spécifier les tableaux à charger sauf en cas de nécessité).
Exploitation d'un index
Forme simple :
http://192.168.0.8/List2X.htm?idlist=1&sublist=20
Affiche les enregistrements correspondant à la 20ème valeur de l'index de la liste 1
Forme combinée :
http://192.168.0.8/List2X.htm?idlist=1&sublist_25=on&sublist_26=on&sublist_34=on&comb=2
Affiche les enregistrements correspondant à la 25ème valeur de l'index de la liste 1, plus ceux de la 26ème valeur et de la 34ème valeur. L'opérateur de combinaison étant ici le "OU" (comb=2).
http://192.168.0.8/List2X.htm?idlist=1&sublist_25=on&sublist_26=on&sublist_34=on&comb=2&oper=d
Idem exemple précédent mais en déployant les branches des descripteurs sélectionnés.
Récapitulatif des paramètres d'une URL :
sublist=n
sublist_n=on
oper=d
comb=2
Exemple de code html dans une page de résultat simple :
# ATitre:="Liste"
# u_Select
# u_Select2subList("=141,$0317,$1903,$0617,$0116,$0142,$0852,=205")
# u_subList("chapitres")
<link rel="SHORTCUT ICON" HREF="favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="/style.css" type="text/css">
<body>
<table border="0" width="100%">
<tr><td width="100%">
<font class="titleblack14">!4D=insert;A_Titre!<br>
<font class="textblack10">!4D=insert;TssTitre!<br>
<font class="textblack10"><font color="#666655"><i>!4D=insert;TnbRecord!</i>
</td><td width="0" align="right"></td>
</tr></table>
<table border="0" width="100%">
<tr valign="top"><td width="80%">
AWEB_ListTable2
AWEB_LisRange
AWEB_ListThesau
AWEB_ListKV
AWEB_EmptyList
</td><td width=20%">
<form action="List2X.htm" method="get">
<input type="hidden" name="idlist" value="!4D=insert;LSelectM;9!">
!4d=begin;AT80_1!
!4d=exec;u_subList("disp";"URL:List2X.htm;field:"+AT80_1{AT80_1})!
<font class="titleblack12">!4D=insert;AT80_2{AT80_1}!<br>
!4d=begin;LTx1!
<input type="checkbox" name="sublist_!4D=insert;LTx1{LTx1};9!" !4D=insert;Num(Chercher dans tableau(TThttpParams;("sublist_"+Chaine(LTx1{LTx1})+"=@"))>0)*"checked=true"!>
<a href="!4D=insert;TTForm_Att{LTx1};3!" class="textblack10">
!4D=insert;TTForm_Lib{LTx1}!<font color="#aaaaaa"> !4D=insert;LTx3{LTx1};9!</a><br>
!4d=end;LTx1!
!4d=end;AT80_1!
<br><font class="titleblack10">
<input type="radio" name="comb" value="2" !4D=insert;Num(http_getparam("comb")#"1")*"checked=true"! >OU
<input type="radio" name="comb" value="1" !4D=insert;Num(http_getparam("comb")="1")*"checked=true"! >ET
<br>
<input type="submit" value="OK" class="button">
</form>
</td></tr></table>
Powered by KENTIKA Atomic - © Kentika 2020 tous droits réservés - Mentions légales