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:Lib boîte déroulante

Aller à la navigation Aller à la recherche
 Documentation[créer] [purger]
local p = {}

--
-- Fonctions locales
--

local function cadreGeneral( texteBouton )
	return '<div class="NavFrame'
	       .. '" style="margin-bottom:1em;'
	                .. 'width:98%;' -- TODO louche
	                .. 'border-style:solid;'
	                .. 'border-color:#AAAAAA;'
	                .. 'background-color:#FFFFFF;'
	       .. '" title="['
	                .. (texteBouton or 'afficher')
	                .. ']'
	       .. '">'
end

local function bandeauTitre( couleurBandeau, titre )
	return '<div class="NavHead'
	       .. '" style="height:auto;'
	                .. 'min-height:1.6em;'
	                .. 'background-color:' .. (couleurBandeau or '#EFEFEF') .. ';'
	                .. 'color:black;'
	       .. '">'
	       .. (titre or '')
	       .. '</div>'
end

local function debutContenu( centrage )
	local alignement = centrage == 'center' and 'center' or 'left'
	return '<div class="NavContent'
	       .. '" style="margin:0px;'
	                .. 'background:white;'
	                .. 'text-align:' .. alignement .. ';'
	                .. 'display:none;' -- devrait être visible par défaut, et caché par JS
	       .. [=[">
]=]
end

local function fermetureDiv()
	return [=[
]=] .. '</div>' -- NavContent
    .. '<div class="NavEnd"></div>'
    .. '</div>' -- NavFrame
end

--
-- Fonctions appelables
--

function p.boiteDeroulante( canari, titre, texte, couleurBandeau, texteBouton, centrage )
	if canari ~= nil then
		error( 'la fonction « boiteDeroulante » ne doit pas être utilisée directement' )
	end

	return cadreGeneral( texteBouton ) .. bandeauTitre( couleurBandeau, titre )
	                                   .. debutContenu( centrage )
	                                   .. (texte or '')
	                                   .. fermetureDiv()
end

function p.boiteDeroulanteDebut( canari, titre, couleurBandeau, texteBouton, centrage )
	if canari ~= nil then
		error( 'la fonction « boiteDeroulanteDebut » ne doit pas être utilisée directement' )
	end

	return cadreGeneral( texteBouton ) .. bandeauTitre( couleurBandeau, titre )
	                                   .. debutContenu( centrage )
end

function p.boiteDeroulanteFin( canari )
	if canari ~= nil then
		error( 'la fonction « boiteDeroulanteFin » ne doit pas être utilisée directement' )
	end

	return fermetureDiv()
end

return p