LINUX:MediaWiki - SMW - Amélioration: Livres

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 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" qui nous permet de présélectionner l'espace de nom "BIBLIO".

Voici le code:


 __NOEDITSECTION__
 =Création d'un nouveau livre=
 {{#forminput:form=Biblio|size=65|namespace selector=BIBLIO}}

Et voici l'aspect:

LINUX:Mws.categorie.biblio.4.png


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" qui nous permet de présélectionner l'espace de nom "BIBLIO".

Voici le code:


 __NOEDITSECTION__
 =Création d'une nouvelle collection=
 {{#forminput:form=Collection|size=65|namespace selector=BIBLIO}}

Et voici l'aspect:

LINUX:Mws.categorie.collection.4.png



retour à Sémantic MediaWiki