Aller au contenu

Module:Infobox/Titre

Cette page est protégée.
Une page de Wikipédia, l'encyclopédie libre.
Ceci est la version actuelle de cette page, en date du 26 mars 2024 à 21:45 et modifiée en dernier par Od1n (discuter | contributions) (simplification ; l'économie de ce require ne me semble pas justifier cet ajout de complexité, surtout que le présent module n'est généralement utilisé qu'une fois par page). L'URL présente est un lien permanent vers cette version.
(diff) ← Version précédente | Version actuelle (diff) | Version suivante → (diff)

 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 = 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/' .. 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' ] or ''

	if lang ~= '' then
		local langueFunction = require( 'Module:Langue' ).langue
		texte = langueFunction( { lang, texte } )
	end
	if italic ~= '' and yesno( italic ) then
		classes = classes .. ' italique'
	end
	local displayTitleEval = ''
	if setDisplayTitle ~= '' and 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