LINUX:MediaWiki - SMW - Requête: Personnes

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche

retour à Sémantic MediaWiki


But

On constitue diverses requêtes.


Liste des adresses

Voici une requête qui affiche sous forme de tableau des adresses. On crée une page nommée "PERSONNE:Liste adresses" et on met le texte suivant:


 =Liste des adresses=
  
 {{#ask:
   [[category:PERSONNE:Adresse]]
   |?Adresserue=Rue
   |?Numerorue=N°
   |?Codepostal=CP
   |?Commune
   |?Codepays=Pays
   |limit=50
   |format=table
   |mainlabel=Page
   |sort=Commune
 }}

Cette requête se présente comme un appel à un modèle mais au lieu d'un modèle, on appelle la fonction '''"#ask:"'''. Elle divers paramètres.

Le premier paramètre spécifie que l'on va chercher parmi les pages reprises dans la catégorie des adresses: "category:PERSONNE:adresse" leurs propriétés.

Les lignes qui suivent précédées d'un point d'interrogation, nomme les différentes propriétés qui seront présentes dans le tableau. Derrière le signe d'égalité, on peut spécifier l'entête de la colonne correspondante.

Quelques options suivent:

  • limit=50 : On limite la liste à 50 lignes.
  • format=table : Le format se présente sous forme de tableau.
  • mainlabel=Page : L'intitulé de la première colonne sera "Page"; elle regroupe le nom des pages. Par défaut, cette entête est vide.
  • sort=Commune : Le tri est fait selon le nom des communes.


Le résultat affichera une liste ressemblant à celle-ci.

LINUX:Mws.liste.adresse.png


On peut visualiser cette liste au lien suivant: Liste des adresses


Liste des personnes

Voici une requête analogue qui concerne les personnes. On crée une page nommée "PERSONNE:Liste personnes" et on met le texte suivant:


 =Liste des personnes=
  
 {{#ask:
   [[category:PERSONNE:Personne]]
   |?Nomutilisateur=Utilisateur
   |?Nomfamille=Nom
   |?Prenomfamille=Prénom
   |?Datenaissance=Date de naissance
   |?Emailutilisateur=Email
   |?GSM
   |?Telephoneutilisateur=Téléphone
   |limit=50
   |format=table
   |mainlabel=Page
   |sort=Nomutilisateur
 }}

Voici le résultat:

LINUX:Mws.liste.personne.png


On peut visualiser cette liste au lien suivant: Liste des personnes


Recherche d'adresses

Mais dès que le nombre d'adresses devient important, il est difficile de retrouver celle qui nous intéresse.

On va donc créer le nécessaire. Pour y arriver, on doit créer un formulaire et un modèle.


On crée la page "Formulaire:RequeteAdresse" pour le formulaire et on met de texte suivant:


 <includeonly>
 <div id="wikiPreview" style="display: none; padding-bottom: 25px; margin-bottom: 25px; border-bottom: 1px solid #AAAAAA;"></div>
 {{{for template|RequeteAdresse|label=Fiche de Recherche d'Adresses}}} 
 {{{info|query form at top}}}
 {| class="formtable"
 ! Pays: 
 | {{{field|Codepays|input type=text}}}
 |-
 ! Commune: 
 | {{{field|Commune|input type=text}}}
 |-
 ! Rue: 
 | {{{field|Adresserue|input type=text}}}
 |}
 {{{end template}}}
  
 </includeonly>

On retrouve le même canevas présenté dans l'article précédent.

On crée ici sous forme de tableau, trois zones afin d'effectuer une recherche sur le pays, la commune et la rue. On donne le titre "Fiche de Recherche d'Adresses" à ce tableau. Ce formulaire sera utilisé par le modèle "RequeteAdresse" ("template"). On désire que ce tableau se trouve au dessus de la page: "{{{info|query form at top}}}".


Ensuite, on crée la page "Modèle:RequeteAdresse" pour le modèle et on met de texte suivant:


 {{#ask:
   [[category:PERSONNE:Adresse]]
     {{#if:{{{Commune|}}}| [[Commune::~{{{Commune}}}*]]}}
     {{#if:{{{Codepays|}}}| [[Codepays::~{{{Codepays}}}*]]}}
     {{#if:{{{Adresserue|}}}| [[Adresserue::~*{{{Adresserue}}}*]]}}
   |?Adresserue=Rue
   |?Numerorue=N°
   |?Codepostal=CP
   |?Commune
   |?Codepays=Pays
   |format=table
   |mainlabel=Page
   |sort=Commune
   |limit=10
 }}

On retrouve un requête proche de celle présentée plus haut pour lister les adresses. Mais ici, on ajoute trois conditions qui font appel à la fonction "#if".

Cette fonction a la forme:


 {{#if: <chaîne à tester> | <action si la chaîne n'est pas vide> | <action si la chaîne est vide ou n'est constituée que d'espaces> }}

Voyez les URL: https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions/fr et https://www.mediawiki.org/wiki/Help:Parser_functions_in_templates/fr

Dans notre cas, la troisième zone n'est pas utilisée. La seconde sert a ajouter une condition dans la sélection des pages.

Chacune concerne le traitement des trois champs du formulaire. Le premier teste le champs du formulaire "Commune" et recherche parmi les pages de la catégorie "PERSONNE:Adresse", celles dont la propriété "Commune" commence par le contenu du champs "Commune" pour autant que le champs soit rempli. Les trois conditions doivent être remplies si leur champs respectif est rempli.


Maintenant on introduit dans une page quelconque la ligne suivant qui va ajouter un lien vers cette recherche:


 [[Special:RunQuery/RequeteAdresse|Recherche d'adresses]]

On retrouvera ce type d'appel dans l'article suivant mais sous une autre forme.


Voici un exemple de recherche:

LINUX:Mws.recherche.adresse.png


On peut visualiser cette recherche au lien suivant: Recherche d'adresses





retour à Sémantic MediaWiki