LINUX:MediaWiki - SMW - Amélioration: Personnes
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:
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: