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:
