Module:Infobox/Personnage coranique

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

Cette page définit un module d'infobox. Elle utilise des fonctions définies sur Module:Infobox/Fonctions/Personne. Pour les conseils sur l'usage de ce module, voyez Modèle:Infobox Personnage coranique.


local personne = require "Module:Infobox/Fonctions/Personne"
local localdata = require 'Module:Infobox/Localdata'
local item = localdata.item
local wikidata = require "Module:Wikidata"
local datemodule = require 'Module:Date'

local birthdate = localdata['naissance'] or
	localdata['date de naissance'] or
	wikidata.formatAndCat{
		entity = item,
		property = 'P569',
		unknownlabel = unknowndatelabel,
		conjtype = 'or',
		sorttype = 'chronological',
		removedupesdate = 'cat',
		minprecision = 8, --précision minimale pour être affichée : décennie
	}

local deathdate = localdata['décès'] or localdata['date de décès']
local wddeathdate = wikidata.formatAndCat{
	entity = item,
	property = 'P570',
	unknownlabel = unknowndatelabel,
	conjtype = 'or',
	sorttype = 'chronological',
	removedupesdate = 'cat',
	minprecision = 8,
}

local disappeardate = localdata['disparition']
local wddisappeardate = wikidata.formatAndCat{
	entity = item,
	property = 'P746',
	unknownlabel = unknowndatelabel,
	conjtype = 'or',
	sorttype = 'chronological',
	removedupesdate = 'cat',
	showqualifiers = 'P276',
	minprecision = 8,
}

-- NAISSANCE ET MORT
local function birth() -- date de naissance en première ligne, lieu de naissance en deuxième
	return {
		type = 'row',
		label = 'Naissance',
		value =
			function()
			local thedate = datemodule.dateInfobox{args = {[1] = 'naissance', [2] = birthdate or '', [3] = deathdate or wddeathdate or disappeardate or wddisappeardate or '', qualificatif = linktopic}}
			return thedate
			end
	}
end

local function death() -- même fonctionnement que la fonction birth
	
	-- date de disparition
	local ldisappeardate = disappeardate
	if (not ldisappeardate ) and (not deathdate) then -- récupérée de Wikidata seulement si la date de décès n'est pas fournie en locale
		ldisappeardate = wddisappeardate
	end
	if ldisappeardate and birthdate then
		ldisappeardate  = datemodule.dateInfobox{args = {[1] = 'événement', [2] = birthdate  or '', [3] = ldisappeardate or '', qualificatif = linktopic, unknownlabel = 'date inconnue'}}
	end

	-- date de décès
	local ddate = deathdate --déclarée pour l'ensemble du module

	if (not ddate) and (not ldisappeardate) then
		deathdate = wddeathdate -- récupérée de Wikidata seulement si la date de disparition n'est pas fournie en locale
	end
	local thedate = datemodule.dateInfobox{args = {[1] = 'mort', [2] = birthdate or '', [3] = deathdate or '', qualificatif = linktopic, unknownlabel = 'date inconnue'}}
	local val = thedate

	return
	{type = 'multi', rows = {
		{ -- disparition
		type = 'row',
		label = 'Disparition',
		value = function() return ldisappeardate end
		},
		{ -- décès
		type = 'row',
		label = 'Décès',
		value = function() return val end,
		}
	}}
end

return {
	maincolor = '#a7e8b6',
	secondcolor = '#ccffcc',
	parts = {
		personne.title('islam'),
		personne.mainimage('Article à illustrer Personnage coranique'),
		personne.officialposition(),
		personne.specialrole(),
		personne.nobilitytitle(),
		personne.honorifictitle(),
		{type = 'table', title = 'Données clés', rows = {
			{type = 'row', label = 'Nom en arabe', value = 'nom en arabe', property = 'P1705'},
			birth(),
			death(),
			personne.family(),
		}},
		{type = 'table', title = 'Apparaît dans', rows = {
			{type = 'row', value = 'mention', wikidata = {property = 'P1441', excludevalues = 'Q428', conjtype = 'comma'}},
		}},
		personne.works{title= 'Œuvres attribués'},
	}
}