Actualités, astuces, interview... Venez lire la gazette de ce printemps de Vikidia !
Module:Bandeau géant
Le module : Bandeau géant sert à créer des bandeaux, non pas pour les pages de contenu mais seulement pour les pages d’organisation et de discussion. Ces bandeaux prennent toute la largeur de la page (à l’inverse de ceux du module : Bandeau grand), entre zéro et une icône, et une zone de texte. Si idéalement, ce module ne serait accedé que depuis d’autres modules, ce n’est pas le cas actuellement, la fonction Bandeau
offrant une manière générique de créer des bandeaux.
Fonctions
Le module offre trois fonctions appelables de l’extérieur :
bandeau
, qui sert à créer les bandeaux ;imageBandeau
, qui sert à formater les argumentsimage_gauche
etimage_droite
de la fonctionbandeau
;Bandeau
, qui permet de créer un bandeau depuis un modèle.
À faire
- Il faudrait bloquer les appels de
bandeau
etimageBandeau
depuis les modèles, a priori en ajoutant un paramètre initial qui fait une erreur si non nul. - Il faut terminer d’éradiquer le modèle : Méta bandeau, faire que le modèle : Averto et ses copains utilisent cette fonction, etc.
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, texte, couleur_fond, couleur_bord, image_gauche, image_droite )
if canari ~= nil then
error( 'utilisez la fonction « BandeauGeant » du [[module : Divers bandeaux]]' )
end
local html = mw.html.create( 'div' )
html:addClass( 'plainlinks' )
:css( 'display', 'table' )
:css( 'box-sizing', 'border-box' )
:css( 'width', '100%' )
:css( 'clear', 'right' )
:css( 'margin', 'auto' )
:css( 'margin-bottom', '10px' )
:css( 'padding', '5px' )
: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', 'left' )
if image_gauche then
html:tag( 'div' ):addClass( 'nomobile' )
:css( 'display', 'table-cell' )
:css( 'vertical-align', 'middle' )
:css( 'width', '140px' )
:css( 'text-align', 'center' )
:node( image_gauche )
:done()
end
html:tag( 'div' ):css( 'display', 'table-cell' )
:css( 'vertical-align', 'middle' )
:wikitext( texte or 'Texte à compléter' )
if image_droite then
html:tag( 'div' ):addClass( 'nomobile' )
:css( 'display', 'table-cell' )
:css( 'vertical-align', 'middle' )
:css( 'width', '140px' )
:css( 'text-align', 'center' )
:node( image_droite )
:done()
end
return html
end
--
-- Fonction 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 depuis un modèle' )
end
if not image then return nil end
local html = mw.html.create()
return html:wikitext( '[[Fichier:' .. image .. '|100px|link=|alt=|class=noviewer]]' )
end
return p