Aller au contenu

Module:Infobox/Personnage coranique

Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 26 septembre 2023 à 18:25 et modifiée en dernier par Darknessswamp8 (discuter | contributions) (Birth() et Death()). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

 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 wikidata = require "Module:Wikidata"

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}}
			local theplace = localdata['lieu de naissance'] or 
			                 wikidata.formatAndCat({entity =item, -- affichage du nom du lieu de naissance en vigueur à la date de naissance 
			                                        property= 'P19', 
			                                        rank = 'best',
			                                        labelformat = function(val) return wikidata.getLabel(val) end, 
			                                        conjtype= ' ou ',
													defaultlinkquery =  {property = {'P361'}}, -- liens par défaut :  "partie de",
			                                        unknownlabel = "lieu inconnu",
			                                        showqualifiers = {'P131', 'P17'},
			                                        qualifconjtype = 'comma'
			                                        }
			                                       )
			return dateandplace(thedate, theplace)
			end
	}
end

local function death() -- même fonctionnement que la fonction p.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 theplace = localdata['lieu de décès'] or 
	                 wikidata.formatAndCat{entity =item, 
			                                 property= 'P20', 
			                                 rank = 'best',
			                                 -- affichage du nom du lieu de décès en vigueur à la date de décès
			                                 labelformat = function(val) return wikidata.getLabel(val) end,
				                             conjtype= ' ou ',
											 defaultlinkquery =  {property = {'P361'}}, -- liens par défaut :  "partie de", 
				                             unknownlabel = "lieu inconnu",
			                                 showqualifiers = {'P131', 'P17'},
			                                 qualifconjtype = 'comma'
			                                 }

	local val = dateandplace(thedate, theplace)

	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 Notabilité islamique'),
		{type = 'table', title= 'Biographie', rows = {
			{type = 'row', label = 'Nom en arabe', value = 'nom en arabe', property = 'P1559'},
			birth(),
			death(),
			personne.influencedby(),
			personne.influenced(),
			personne.military(),
		}},
		{type = 'table', title= 'Famille', rows = {
			personne.family(),
		}},
		personne.works{title= 'Œuvres attribués'},
		personne.officialposition(),
		personne.specialrole(),
		personne.nobilitytitle(),
		personne.honorifictitle(),
		personne.feast(),
	}
}