Aller au contenu

Module:Infobox/Titre

Cette page est protégée.
Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 3 janvier 2022 à 19:16 et modifiée en dernier par Od1n (discuter | contributions) (support des cas où il y aurait plusieurs espaces entre les noms de classes (très possible en cas de liste générée programmatiquement)). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

 Documentation[voir] [modifier] [historique] [purger]

Ce module est utilisé par {{Infobox/Titre}}, une brique d'infobox V2.

local p = { }

local trim = require( 'Module:Outils' ).trim
local yesno = require( 'Module:Yesno' )

function p.templatestyles( pictogramme )
	pictogramme = trim( pictogramme )
	if not pictogramme then
		return ''
	end
	pictogramme = trim( pictogramme
		:gsub( '^entete +', '' )
		:gsub( '^entete$', '' )
		:gsub( ' +entete$', '' )
		:gsub( ' +entete +', ' ' )
	)
	if pictogramme and pictogramme ~= 'defaut' then
		if pictogramme:match( '%s' ) then
			return '[[Catégorie:Infobox avec plusieurs class]]'
		else
			return mw.getCurrentFrame():extensionTag( 
				'templatestyles',
				'',
				{ src = 'Infobox/Pictogramme/' .. mw.text.trim( pictogramme ) .. '.css' }
			)
		end
	end
	return ''
end

function p.couleurs( background, color )
	local couleur = require( 'Module:Dièse couleur web' ).couleur
	background = trim( background ) or '#E1E1E1'
	color = trim( color ) or 'black'
	
	return 'background-color:' .. couleur( background ) .. ';'
		.. 'color:' .. couleur( color ) .. ';'
end

function p.V2( frame )
	local args =  frame.getParent and frame:getParent().args or frame
	local colspan = trim( args[5] ) or '2'
	local texte = trim( args[1] ) or mw.title.getCurrentTitle().text
	local classes = trim( args[3] ) or 'defaut'
	local lang = args['lang'] or ''
	local italic = args['italic'] or ''
	local setDisplayTitle = args['setdisplaytitle']

	if lang ~= '' then
		local langueFunction = require( 'Module:Langue' ).langue
		texte = langueFunction( { lang, texte } )
	end
	if yesno(italic) then
		classes = classes .. ' italique'
	end
	local displayTitleEval = ''
	if yesno(setDisplayTitle) then
		local setDisplayTitleFunction = require( 'Module:Formatage du titre' ).setDisplayTitle
		displayTitleEval = setDisplayTitleFunction( { args = { lang = lang, italic = italic, options = 'noreplace' } } )
	end

	return 'colspan="' .. colspan .. '" '
		.. 'class="entete ' .. classes .. '" '
		.. 'style="' .. p.couleurs( args[2], args[4] ) .. '" '
		.. ' | '
		.. texte
		.. p.templatestyles( args[3] )
		.. displayTitleEval
end

return p