Actualités, astuces, interview... Venez lire la gazette de ce printemps de Vikidia !
Module:Bandeau grand
Le module : Bandeau grand sert à créer des bandeaux, à la fois pour les pages de contenu et pour les pages d’organisation. Ces bandeaux ont des marges à droite et à gauche (à l’inverse de ceux du module : Bandeau géant), un style spécifique (pseudo ombre vers le coin bas-droite), entre zéro et deux icônes, et une zone de texte commençant optionnellement par un titre. Les fonctions de ce module ne peuvent être accédées que depuis d’autres modules ; pour un appel générique, voyez la fonction BandeauGrand
du module : Divers bandeaux.
Fonctions
Le module offre quatre fonctions appelables depuis d’autres modules :
bandeau
, qui sert à créer les bandeaux ;- deux fonctions qui servent à formater les arguments
image_gauche
etimage_droite
de la fonctionbandeau
:imageBandeau
, pour les images simples,imageCC
, pour assembler une image qui indique une licence Creative Commons ;
- une fonction qui sert à formater du texte,
texteAEtape
, qui sert pour les bandeaux qui proposent de mettre en place un vote.
À faire
- Il faut terminer d’éradiquer le modèle : Méta bandeau, qui était précédemment utilisé pour cet usage.
La documentation de ce module est incluse depuis sa sous-page de documentation (modifier | historique).
Veuillez placer les catégories dans la sous-page /Documentation.
Les éditeurs peuvent travailler dans le bac à sable (créer).
local p = {}
--
-- Fonction qui génère le bandeau
--
function p.bandeau( canari, titre, texte, couleur_fond, couleur_bord, image_gauche, image_droite )
if canari ~= nil then
error( 'utilisez la fonction « BandeauGrand » du [[module : Divers bandeaux]]' )
end
local html = mw.html.create( 'div' )
html:addClass( 'plainlinks' )
:css( 'display', 'table' )
:css( 'box-sizing', 'border-box' )
:css( 'width', '70%' )
:css( 'clear', 'right' )
:css( 'clear', 'both' ) -- semble ne pas marcher
:css( 'margin', 'auto' )
:css( 'margin-bottom', '10px' )
:css( 'padding', '3px' )
:css( 'border-width', '0 12px 3px 0' )
:css( 'border-style', 'solid' )
:css( 'background-color', couleur_fond or 'white' )
:css( 'border-color', couleur_bord or '#AAA' )
:css( 'text-align', 'center' )
if image_gauche then
html:tag( 'div' ):addClass( 'nomobile' )
:css( 'display', 'table-cell' )
:css( 'vertical-align', 'middle' )
:css( 'width', '100px' )
:node( image_gauche )
:done()
end
html:tag( 'div' ):css( 'display', 'table-cell' )
:css( 'vertical-align', 'middle' )
:wikitext( titre and ( '<b>' .. titre .. '</b><br />' ))
:wikitext( texte or '' )
if image_droite then
html:tag( 'div' ):addClass( 'nomobile' )
:css( 'display', 'table-cell' )
:css( 'vertical-align', 'middle' )
:css( 'width', '100px' )
:node( image_droite )
:done()
end
return html
end
--
-- Fonctions pour créer les images
--
function p.imageBandeau( canari, image )
if canari ~= nil then
error( 'la fonction « imageBandeau » n’est pas destinée à être utilisée directement' )
end
if not image then return nil end
local html = mw.html.create()
return html:wikitext( '[[Fichier:' .. image .. '|50px|link=|alt=|class=noviewer]]' )
end
function p.imageCC( canari, args )
if canari ~= nil then
error( 'la fonction « imageCC » n’est pas destinée à être utilisée directement' )
end
local image = mw.html.create( 'div' )
image:tag( 'div' ):wikitext( '[[Fichier:CC Some rights reserved.svg|90px|alt=|link=|class=noviewer]]' )
:done()
:tag( 'div' )
if args.BY then
image:wikitext( '[[Fichier:CC-BY.svg|30px|alt=|link=|class=noviewer]]' )
if args.NC then
image:wikitext( '[[Fichier:CC-NC.svg|30px|alt=|link=|class=noviewer]]' )
end
if args.SA then
image:wikitext( '[[Fichier:CC-SA.svg|30px|alt=|link=|class=noviewer]]' )
elseif args.ND then
image:wikitext( '[[Fichier:CC-ND.svg|30px|alt=|link=|class=noviewer]]' )
end
elseif args.PD then
image:wikitext( '[[Fichier:CC-PD.svg|30px|alt=|link=|class=noviewer]]' )
elseif args.ZERO then
image:wikitext( '[[Fichier:CC0.svg|30px|alt=|link=|class=noviewer]]' )
elseif args.SA then -- il a existé une CC SA 1.0, qui est déconseillée
image:wikitext( '[[Fichier:CC-SA.svg|30px|alt=|link=|class=noviewer]]' )
end
return image
end
--
-- Fonctions pour formater le texte
--
function p.texteAEtape( canari, intro, titre, texte )
if canari ~= nil then
error( 'la fonction « texteAEtape » n’est pas destinée à être utilisée directement' )
end
local b = require( 'Module:Lib boîte déroulante' )
return (intro or '') .. b.boiteDeroulante( nil, -- fonction réservée aux modules
titre,
texte )
end
return p