« Module:Infobox/Évènement » : différence entre les versions

De Les Archives de Vault-Tec
Kharmitch (discussion | contributions)
mAucun résumé des modifications
Kharmitch (discussion | contributions)
Aucun résumé des modifications
Ligne 68 : Ligne 68 :
{ type = 'row', label = 'Connexe', value = 'connexe' },
{ type = 'row', label = 'Connexe', value = 'connexe' },
{ type = 'succession', value = {
{ type = 'succession', value = {
before = localdata['précédent'],
before = function(localdata) return localdata['précédente'] end,
after  = localdata['suivant']
after  = function(localdata) return localdata['suivante'] end
}}
}}
}},
}},

Version du 19 septembre 2022 à 11:08

Documentation du module

Ce module contient le paramétrage de l'infobox {{Infobox évènement}}.

Documentation transclues de Module:Infobox/Évènement/doc.
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 = function(localdata) return localdata['précédente'] end,
				after  = function(localdata) return localdata['suivante'] end
			}}
		}},
		{ type = 'text', value = 'pied' }
	}
}