0

6 La navigation dans le manuel de Kentika est réservée aux utilisateurs identifiés



Méthode Web : u_select

Méthode u_Select

Préambule

Cette méthode est l'une des plus importantes du moteur web. En effet, elle prend en charge un nombre élevé de cas de figure et prépare tout ce qui est ensuite nécessaire à la navigation entre les pages. Elle s'appuie intégralement sur les paramètres trouvés dans l'URL pour effectuer les recherches mais peut aussi être appelée pour effectuer la préparation de la liste de navigation (dans le cas où la recherche sera effectuée préalablement).

S'il est nécessaire de faire exécuter cette méthode alors que les paramètres ne sont pas présents dans l'URL, il sera nécessaire de les forcer à l'aide de la méthode http_SetParam.

Contexte d'utilisation

Cette méthode est appelée exclusivement dans le cadre du serveur web et en général placée en début de page présentant une liste de résultats.

Syntaxe

u_Select

Les paramètres décrits ci-après sont lus directement dans l'URL.

Exemple

http://www.a-ressources.net/ListRecord.htm?list=table&table=3

Le paramètre "list" est égal à "table", le paramètre "table" est égal à "3".

Paramètre : "list"

Ce paramètre détermine la manière dont la liste est constituée.

Valeur Description

Table Les enregistrements de la table spécifiée

Folder Contenu d'un dossier

request Recherche multi-critères

link Les enregistrements liés à un autre

Selection Contenu d'un panier

KVList Sous-sélection dans le résultat d'une recherche sur base externe

histo Exploitation du log : stat perso

values Valeurs d'une rubrique code

help Recherche effectuée dans les listes proposées en aide

valid Vérifie la validité d'une valeur (ex : en saisie de fiche)

u_Select avec "list=table"

Ce mode de recherche est utilisé dans la ressource web permettant une recherche rapide et dans les listes d'accès direct aux tables.

Paramètre complémentaire "&table="

Le numéro de la table doit être passé dans ce paramètre (exemple : 3 pour la table document).

Paramètre complémentaire optionnel "&compl="

Ce paramètre est généré automatiquement par la méthode de calcul des options de l'utilisateur connecté. Il permet d'identifier le type d'objet.

Paramètre complémentaire optionnel "&type="

Permet de réduire la table indiquée dans le paramètre ci-dessus à un type (si applicable).

Paramètre complémentaire optionnel "&what="

Permet de spécifier une valeur recherchéedans la table (et éventuellement le type) indiqué.

Paramètre complémentaire optionnel "&field="

Permet de spécifier les rubriques sur lesquelles la recherche doit porter. Si ce paramètre n'est pas présent, la recherche est effectuée sur la / les rubriques par défaut.

En savoir plus sur la recherche : la méthode "select".

Exemple : formulaire permettant d'effectuer une recherche dans les documents de type "Article"

<form action="ListRecord.htm " method="get">

<input type="hidden" name="list " value="table ">

<input type="hidden" name="table " value="3 ">

<input type="hidden" name="type " value="article ">

<input type="hidden" name="field " value="21;131 ">

<input type="text" name="what " size="20">

<input type="submit" value="OK">

</form>

Ce formulaire propose une zone de saisie de critères et affiche la liste des articles trouvés ayant l'expression saisie dans la rubrique titre (21) ou commentaire (131).

u_Select avec "list=folder"

Paramètre complémentaire "&folder="

Ce paramètre peut contenir soit un numéro de dossier, soit une chaîne de caractère. Le premier cas (numéro de requête) correspond en général aux options calculées automatiquement par l'application mais il est aussi possible de construire cette URL afin de faire afficher le contenu précis d'un dossier. Si le paramètre contient une chaîne de caractère, l'application recherche les dossiers ayant une telle chaîne dans l'intitulé ou dans le commentaire (si pas pas de réponse avec la recherche dans le libellé) et les filtres ensuite afin de tenir compte des dossiers autorisés à l'utilisateur connecté. Si plusieurs dossiers sont trouvés, la liste de ces derniers est proposée, sinon, c'est le contenu du dossier qui est proposé.

Exemple

http://192.168.0.20/ListRecord.htm?list=folder&folder=Photos+de+sport

Permet d'afficher le contenu du dossier dont l'intitulé est "Photos de sport".

Rechercher dans les dossiers :

<form action="ListRecord.htm " method="get">

<input type="hidden" name="list " value="folder ">

<input type="text" name="folder " size="20">

<input type="submit" value="OK">

</form>

Propose un formulaire de recherche dans les dossiers.

u_Select avec "list=request"

Cette recherche est utilisée pour les recherches multi-critères. Deux cas de figure : soit la recherche multi-critère utilise une requête avec des lignes pré-définies (exprimée par le paramètre Numreq), soit elle est constituée "à la main". Dans le premier cas, seules les valeurs recherchées sont nécessaires dans les paramètres, dans le deuxième cas, tous les paramètres décrits ci-après doivent être transmis.

Paramètres pour chaque critère de recherche

Paramètre Description

nat_(n) Nature (1=code, 2=thesaurus, 3=format libre ...)

fields_(n) Numéros de rubriques (tel que décrit dans "select")

lib_(n) Libellé, à titre indicatif

oper_(n) Opérateur

cluster_(n) Valeur recherchée

comb_(n) Combinaison (à partir de la deuxième ligne)

La séquence pour chaque critère proposé doit être complète.

Opérateur pour rubrique texte : chaîne de 8 caractères

Caractère 1
  • 1 : Contient un des mots
  • 2 : Contient tous les mots (n)
  • 3 : Contient tous les mots dans l'ordre (n;x1)
  • 4 : Contient l'expression (n;x2)
  • 5 : Commence par l'expression (n;x3)
  • 6 : Est égal à l'expression (n;x9)
Caractère 2
  • 1 : approximation phonétique
  • 0 : pas d'approximation phonétique
Caractère 3
  • 1 : troncature sur tous les mots (commence par)
  • 0 : pas de troncature
Caractère 4
  • 1 : rechercher aussi sur les alias (descripteur, auteur, référence)
  • 0 : ne pas rechercher sur les alias
Caractère 5
  • 1 : déployer le thesaurus
Caractère 6
  • n : remonter sur (n) niveaux
Caractère 7
  • n : descendre sur (n) niveaux
Caractère 8
  • 1 : inclure les termes associés
  • 0 : ne pas inclure les termes associés

Exemple

21010000 : Contient tous les mots, avec approximation, sans troncature, aussi sur alias

30011251 : Contient tous les mots dans l'ordre, aussi sur alias en remontant le thesaurus sur 2 niveaux, redescendre sur 5 niveaux et inclure les termes associés

Opérateur pour rubrique date ou nombre : 1 caractère numérique

  • 1 : <
  • 2 : <=
  • 3 : =
  • 4 : >=
  • 5 : >

Combinaison

  • 1 : ET
  • 2 : OU
  • 3 : SAUF

Exemple

Comb_2=2

Fera que la ligne 2 de recherche sera combinée à la ligne 1 avec l'opérateur de combinaison "OU" : Ligne 1 OU Ligne 2

Choix des types d'objet

Les types d'objets proposés doivent être précédés de objecttype_ et suivi du numéro de table et du type exact (ie : non traduit)

Exemple

<input type='checkbox' name='objecttype_03Article ' checked=true > ...

Cette option propose à l'utilisateur de sélectionner ou nom le type Article

<input type='hidden' name='objecttype_03Article ' value='on' >

<input type='hidden' name='objecttype_03Breve' value='on' >

Cette option force une restriction aux seuls types "Article" et "Breve".

Croisement avec un dossier

Il est possible de croiser le résultat de la recherche avec un ou plusieurs dossiers. Dans ce cas, le paramètre des dossiers sera, pour chaque dossier à inclure dans l'ensemble de croisement, "infolder_" suivi du numéro de requête.

Exemple

<input type='checkbox' name='infolder_21 ' checked=true > ...

Cette option propose à l'utilisateur de sélectionner ou nom le dossier 21

<input type='hidden' name='infolder_21 ' value='on' >

<input type='hidden' name='infolder_22' value='on' >

Cette option force une intersection avec le contenu des dossiers 21 et 22.

Croiser avec un résultat précédent

Paramètre : inselect

Si ce paramètre a la valeur "1" ou "on", la recherche est croisée (intersection) soit avec la dernière recherche effectuée, soit avec une liste dont le numéro exprimée à l'aide du paramètre "idinlist".

u_Select avec "list=link"

Le numéro de l'enregistrement de départ doit être transmis à l'aide du paramètre "xRecord", le numéro du lien doit être transmis à l'aide du paramètre "link".

Exemple

http://192.168.0.20/ListRecord.htm?list=link&xRecord =154312497259&table=5&link =-141

affiche la liste des descripteurs affecté à l'enregistrement dont le numéro codé est 154312497259

u_Select avec "list=selection"

Le numéro de panier de l'utilisateur doit être transmis à l'aide du paramètre "select".

Exemple

http://192.168.0.20/ListRecord.htm?list=selection&select =4

Affiche la liste des enregistrements contenus dans le panier dont le numéro est "4". Le contenu d'un panier pouvant être hétérogène, la liste pourra contenir des enregistrements appartenant à des tables différentes.

Autres opérations prises en charge par u_Select

  • Ce qui suit est réalisé automatiquement, quelle que soit la manière dont la sélection a été constituée.
  • Filtre le résultat (sauf si l'attribut "filter" dans la variable TAttributs est égal à "off").
  • Tri le résultat en tenant compte du critère de tri par défaut (sauf si l'attribut "sort" dans la variable TAttributs est égal à "off").
  • Crée la liste des numéros d'enregistrements (LTNumRecList) et qui va ensuite être gérée par la boucle d'affichage (!4d=begin;99! ... !4d=end;99!).