Communauté  • Livre d'or
Chats noirs.jpg Actualités, astuces, interview... Venez lire la gazette de ce printemps de Vikidia ! DessinInterview.png
Cette page est protégée.

Module:Bandeau grand

Aller à la navigation Aller à la recherche
 Documentation[modifier] [purger]

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 et image_droite de la fonction bandeau :
  • une fonction qui sert à formater du texte, texteAEtape, qui sert pour les bandeaux qui proposent de mettre en place un vote.

À faire

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