Module:Infobox/Événement

Révision datée du 23 juillet 2022 à 09:42 par Kims (discussion | contributions) (Page créée avec « local localdata = require('Module:Infobox/Localdata') function buildSubject(arg) local subject = 'Évènement' if arg then local types = { ['conflit militaire'] = 'Conflit militaire' } subject = types[arg:lower()] or subject end return subject end function buildColumns(localdata, prefix) local res = mw.html.create( 'div' ) local style = 'display:grid;text-align:left;' local isFirstColumn = true for i = 1, 4 do local value = localdata[pre... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Documentation[voir] [modifier] [purger]
local localdata = require('Module:Infobox/Localdata')

function buildSubject(arg)
	local subject = 'Évènement'
	if arg then
		local types = {
			['conflit militaire']  = 'Conflit militaire'
		}
		subject = types[arg:lower()] or subject
	end
	return subject
end

function buildColumns(localdata, prefix)
	local res   = mw.html.create( 'div' )
	local style = 'display:grid;text-align:left;'
	local isFirstColumn = true
	
	for i = 1, 4 do
		local value = localdata[prefix .. i]
		if value then
			if isFirstColumn then
				isFirstColumn = false
				style = style .. 'grid-template-columns:1fr'
			else
				style = style .. ' 1fr'
			end
			res	:tag( 'div' )
				:wikitext( value )
				:done()
		else
			break
		end
	end
	
	res	:attr('style', style .. ';')
		:allDone()
		
	if isFirstColumn then return end
	
	return tostring(res)
end

return {
	parts = {
		{ type = 'title', value = 'nom', subtitle = 'sous-titre', icon = 'icône', subhead = { games = 'jeux', subject = buildSubject(localdata['type']), link = 'Chronologie' }},
		{ type = 'images', imageparameters = { 'image', 'image2', 'image3', 'image4', 'image5' }, captionparameter = { 'légende', 'image desc' }},
		{ type = 'table', title = 'Informations générales', rows = {
			{ type = 'row', label = 'Date', value = 'date' },
			{ type = 'row', label = 'Lieu', value = 'lieu' },
			{ type = 'row', label = '\'\'Casus belli\'\'', value = 'casus belli' },
			{ type = 'row', label = 'Issue', value = 'issue' }
		}},
		{ type = 'table', title = 'Belligérants', rows = {
			{ type = 'row1col', value = function(localdata) return buildColumns(localdata, 'combattant') end }
		}},
		{ type = 'table', title = 'Commandants', rows = {
			{ type = 'row1col', value = function(localdata) return buildColumns(localdata, 'commandant') end }
		}},
		{ type = 'table', title = 'Forces en présence', rows = {
			{ type = 'row1col', value = function(localdata) return buildColumns(localdata, 'forces') end }
		}},
		{ type = 'table', title = 'Pertes', rows = {
			{ type = 'row1col', value = function(localdata) return buildColumns(localdata, 'pertes') end }
		}},
		{ type = 'table', title = 'Évènements associés', rows = {
			{ type = 'row', label = 'Partie de', value = 'partie de' },
			{ type = 'row', label = 'Connexe', value = 'connexe' },
			{ type = 'succession', value = {
				before = localdata['précédent'],
				after  = localdata['suivant']
			}}
		}},
		{ type = 'text', value = 'pied' }
	}
}