LINUX:MediaWiki - SMW - Amélioration: Personnes

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

retour à Sémantic MediaWiki


But

On améliore ensuite cet embryon de gestion de personnes présente à l'article sur le Prototype: Personnes.

Les zones des scripts ajoutées ou modifiées seront notées en rouge. Pour comparer, reportez-vous aux scripts de départs à l'article sur le Prototype: Personnes.


Adresse

Modèle

Voici le script:


 <includeonly>
 {| class="wikitable"
 ! Rue
 | [[Adresserue::{{{Adresserue|}}}]]
 |-
 ! N°
 | [[Numerorue::{{{Numerorue|}}}]]
 |-
 ! Code Postal
 | [[Codepostal::{{{Codepostal|}}}]]
 |-
 ! Commune
 | [[Commune::{{{Commune|}}}]]
 |-
 ! Pays
 | [[Codepays::{{{Codepays|}}}]]
 |-
 ! Liste de personnes
 | {{#ask:[[Adresselien::{{FULLPAGENAME}}]]|format=list}}
 |}
  
 [[Catégorie:PERSONNE:Adresse]]
 </includeonly>

Il n'y a qu'une modification: le mot magique "SUBPAGENAME" est remplacé par "FULLPAGENAME". C'est une conséquence de la volonté de ne pas afficher la partie espace de nom "PERSONNE:" comme nous le verrons par la suite.


Formulaire

Voici le script:


 <includeonly>
 <div id="wikiPreview" style="display: none; padding-bottom: 25px; margin-bottom: 25px; border-bottom: 1px solid #AAAAAA;"></div>
 {{{for template|Adresse|label=Fiche de l'adresse}}}
 {| class="formtable"
 ! Rue: 
 | {{{field|Adresserue|input type=text}}}
 |-
 ! N°: 
 | {{{field|Numerorue|input type=text}}}
 |-
 ! Code Postal: 
 | {{{field|Codepostal|input type=text}}}
 |-
 ! Commune: 
 | {{{field|Commune|input type=text}}}
 |-
 ! Pays: 
 | {{{field|Codepays|input type=dropdown}}}
 |}
 {{{end template}}}
  
 '''Remarques:'''
 {{{standard input|free text|rows=10}}}
 </includeonly>

Ici également, peu de changement. On ajoute un titre au tableau avec le paramètre "label=Fiche de l'adresse". Et on modifie le texte "Texte libre" par "Remarque".


Catégorie

On ajoute un titre pour séparer l'appel existant à la création d'une nouvelle page de la liste des pages.

On remplace cet appel à la création d'une nouvelle page "{{#default_form:Adresse}}", par la fonction "#forminput" qui nous permet de présélectionner l'espace de nom "PERSONNE".

Voici le code:


 __NOEDITSECTION__
 =Création d'une nouvelle adresse=
 {{#forminput:form=Adresse|size=65|namespace selector=PERSONNE}}

Et voici l'aspect:

LINUX:Mws.categorie.adresse.4.png


Personne

Modèle

Voici de script:


 <includeonly>
 {| class="wikitable"
 ! Utilisateur
 | [[Nomutilisateur::{{{Nomutilisateur|}}}]]
 |-
 ! Nom de famille
 | [[Nomfamille::{{{Nomfamille|}}}]]
 |-
 ! Prénom
 | [[Prenomfamille::{{{Prenomfamille|}}}]]
 |-
 ! Email
 | [[Emailutilisateur::{{{Emailutilisateur|}}}]]
 |-
 ! GSM
 | [[GSM::{{{GSM|}}}]]
 |-
 ! Téléphone
 | [[Telephoneutilisateur::{{{Telephoneutilisateur|}}}]]
 |-
 ! Adresse
 | {{#arraymap:{{{Adresselien|}}}|,|xx1|{{#formredlink:target=PERSONNE:xx1|form=Adresse|existing page link text=xx1|link text=xx1}} {{#set:Adresselien=PERSONNE:xx1}} }}
 |}
 {{#arraydefine:Listelien | {{{Adresselien}}} }}
 {{
  #loop: i | 0 | {{ #arraysize:Listelien }} | 
  {{ #arraydefine: Adrl | {{ #arrayindex:Listelien | {{ #var:i }} }} }}
  {{ #ask:[[category:PERSONNE:Adresse]]
  [[PERSONNE:{{#arrayprint:Adrl}}]]
  |?Adresserue=Rue|?Numerorue=N°|?Codepostal=CP|?Commune|?Codepays=Pays
  |mainlabel=Page
  |limit=2|format=table }}
 }}
  
 [[Catégorie:PERSONNE:Personne]]
 </includeonly>



 ! Adresse
 | {{#arraymap:{{{Adresselien|}}}|
     ,|
     xx1|
     {{#formredlink:target=PERSONNE:xx1|
       form=Adresse|
       existing page link text=xx1|
       link text=xx1
     }} 
     {{#set:Adresselien=PERSONNE:xx1}}
   }}



 {{#arraydefine:Listelien|
   {{{Adresselien}}}
 }}
 {{#loop: i|
          0|
          {{ #arraysize:Listelien }}|
   {{#arraydefine: Adrl|
     {{#arrayindex:Listelien|
       {{#var:i}}
     }} 
   }}
   {{#ask:
     [[category:PERSONNE:Adresse]]
     [[PERSONNE:{{#arrayprint:Adrl}}]]
     |?Adresserue=Rue
     |?Numerorue=N°
     |?Codepostal=CP
     |?Commune
     |?Codepays=Pays
     |mainlabel=Page
     |limit=2
     |format=table 
   }}
 }}



Formulaire


 <includeonly>
 <div id="wikiPreview" style="display: none; padding-bottom: 25px; margin-bottom: 25px; border-bottom: 1px solid #AAAAAA;"></div>
 {{{for template|Personne|label=Fiche de la personne}}}
 {| class="formtable"
 ! Utilisateur: 
 | {{{field|Nomutilisateur|unique|mandatory|input type=text}}}
 |-
 ! Nom de famille: 
 | {{{field|Nomfamille|input type=text}}}
 |-
 ! Prénom: 
 | {{{field|Prenomfamille|input type=text}}}
 |-
 ! Email: 
 | {{{field|Emailutilisateur|input type=text}}}
 |-
 ! GSM: 
 | {{{field|GSM|input type=text}}}
 |-
 ! Téléphone: 
 | {{{field|Telephoneutilisateur|input type=text}}}
 |-
 ! Adresse: 
 | {{{field|Adresselien|input type=tokens}}}
 |}
 {{{end template}}}
  
 * {{#queryformlink:form=RequeteAdresse|link text=Recherche d'adresse|new windows}}
  
 '''Remarques:'''
 {{{standard input|free text|rows=10}}}
 </includeonly>



 * {{#queryformlink:form=RequeteAdresse|
     link text=Recherche d'adresse|
     new windows
   }}


Catégorie

On ajoute un titre pour séparer l'appel existant à la création d'une nouvelle page de la liste des pages.

On remplace cet appel à la création d'une nouvelle page "{{#default_form:Personne}}", par la fonction "#forminput" qui nous permet de présélectionner l'espace de nom "PERSONNE".

Voici le code:


 __NOEDITSECTION__
 =Création d'une nouvelle personne=
 {{#forminput:form=Personne|size=65|namespace selector=PERSONNE}}

Et voici l'aspect:

LINUX:Mws.categorie.personne.4.png




retour à Sémantic MediaWiki