LINUX:MediaWiki - SMW - Amélioration: Livres
But
On améliore ensuite cet embryon de gestion de livres présente à l'article sur le Prototype: Livres.
Livres
Modèle
Voici le script amélioré:
<includeonly> {| class="wikitable" ! Type de document | {{#arraymap:{{{Typedocument|}}}|,|xx1|[[Typedocument::xx1]]}} |- ! Catégorie de document | {{#arraymap:{{{Categoriedocument|}}}|,|xx2|[[Categoriedocument::xx2]]}} |- ! Titre | [[Titre::{{{Titre|}}}]] |- ! Auteur | {{#arraymap:{{{Auteur|}}}|,|xx3|[[Auteur::xx3]]}} |- ! Editeur | [[Editeur::{{{Editeur|}}}]] |- ! Collection | {{#if:{{{Collectionlivre|}}}| {{#formredlink:target=BIBLIO:{{{Collectionlivre}}}| form=Collection| existing page link text={{{Collectionlivre}}}| link text={{{Collectionlivre}}} }} {{#set:Collectionlivre=BIBLIO:{{{Collectionlivre}}} }}| Vide}} |- ! Numéro | [[Numero::{{{Numero|}}}]] |- ! ISBN | [[ISBN::{{{ISBN|}}}]] |- ! Image de garde | {{#ifexist:File:BIBLIO:{{{Imagegarde}}}.jpg| [[Imagegarde::File:BIBLIO:{{{Imagegarde|}}}.jpg|200px]]| A charger==>{{fullurl:special:upload|wpDestFile=BIBLIO:{{urlencode:{{{Imagegarde}}}|WIKI}}.jpg&wpUploadDescription={{urlencode:[[Category:BIBLIO:Page-de-garde]]|WIKI}} }} }} |- ! Sujet | [[Sujet::{{{Sujet|}}}]] |} [[Catégorie:BIBLIO:Biblio]] </includeonly>
! Collection | {{#if:{{{Collectionlivre|}}}| {{#formredlink:target=BIBLIO:{{{Collectionlivre}}}| form=Collection| existing page link text={{{Collectionlivre}}}| link text={{{Collectionlivre}}} }} {{#set:Collectionlivre=BIBLIO:{{{Collectionlivre}}} }}| Vide }}
! Image de garde | {{#ifexist:File:BIBLIO:{{{Imagegarde}}}.jpg| [[Imagegarde::File:BIBLIO:{{{Imagegarde|}}}.jpg|200px]]| A charger==> {{fullurl:special:upload| wpDestFile=BIBLIO:{{urlencode:{{{Imagegarde}}}|WIKI}}.jpg&wpUploadDescription={{urlencode:[[Category:BIBLIO:Page-de-garde]]|WIKI}} }} }}
Formulaire
<includeonly> <div id="wikiPreview" style="display: none; padding-bottom: 25px; margin-bottom: 25px; border-bottom: 1px solid #AAAAAA;"></div> {{{for template|Biblio|label=Fiche du livre}}} {| class="formtable" ! Type de document: | {{{field|Typedocument|input type=checkboxes}}} |- ! Catégorie de document: | {{{field|Categoriedocument|input type=checkboxes}}} |- ! Titre: | {{{field|Titre|mandatory|input type=text}}} |- ! Auteur: | {{{field|Auteur|input type=tokens}}} |- ! Editeur: | {{{field|Editeur|input type=text}}} |- ! Collection: | {{{field|Collectionlivre|input type=text}}} |- ! Numéro: | {{{field|Numero|input type=text}}} |- ! ISBN: | {{{field|ISBN|input type=text}}} |- ! Image de garde: | {{{field|Imagegarde|input type=text}}} |- ! Sujet: | {{{field|Sujet|input type=text}}} |} {{{end template}}} '''Remarques:''' {{{standard input|free text|rows=10}}} </includeonly>
Catégorie
On ajoute un titre pour séparer l'appel existant à la création d'une nouvelle page.
On remplace cet appel à la création d'une nouvelle page "{{#default_form:Biblio}}", par la fonction "#forminput"</nowkiki> qui nous permet de présélectionner l'espace de nom "BIBLIO". Voici le code: ---- <nowiki>=Création d'un nouveau livre= {{#forminput:form=Biblio|size=65|namespace selector=BIBLIO}}
Et voici l'aspect:
Collection
Modèle
<includeonly> * '''Pages de garde''' {{#ask: [[category:BIBLIO:Biblio]] [[Collectionlivre::{{FULLPAGENAME}}]] | ?Imagegarde | ?Titre |imageproperty=Imagegarde |captionproperty=Titre |format=gallery |sort=Numero |redirects=- }} * '''Liste des livres''' {{#ask:[[category:BIBLIO:Biblio]] [[Collectionlivre::{{FULLPAGENAME}}]] |?Typedocument=Type de document |?Categoriedocument=Catégorie de document |?Titre=Titre |?Auteur=Auteur |?Editeur=Editeur |?Numero=Numéro |?ISBN=ISBN |mainlabel=Page |sort=Numero |format=table}} [[Catégorie:BIBLIO:Collection]] </includeonly>
Formulaire
<includeonly> '''Descriptif:''' {{{standard input|free text|rows=20}}} {{{for template|Collection}}} </includeonly>
Catégorie
On ajoute un titre pour séparer l'appel existant à la création d'une nouvelle page.
On remplace cet appel à la création d'une nouvelle page "{{#default_form:Collection}}", par la fonction "#forminput"</nowkiki> qui nous permet de présélectionner l'espace de nom "BIBLIO". Voici le code: ---- <nowiki>=Création d'une nouvelle collection= {{#forminput:form=Collection|size=65|namespace selector=BIBLIO}}
Et voici l'aspect: