Module:Infobox/Fonctions/Personne : Différence entre versions

De Lagny-sur-Marne Wiki
Aller à : navigation, rechercher
m (gestion des catégories trackers par Module:Wikidata)
(+)
Ligne 3 : Ligne 3 :
 
local wikidata = require('Module:Wikidata')
 
local wikidata = require('Module:Wikidata')
 
local general = require('Module:Infobox/Fonctions')
 
local general = require('Module:Infobox/Fonctions')
local d = require('Module:Wikidata/Dates')
+
local gender -- set by setgender
  
 
-- ========== Fonctions d'aide ====================================
 
-- ========== Fonctions d'aide ====================================
Ligne 12 : Ligne 12 :
 
else
 
else
 
return thedate or theplace --retourne tout ce qu'il trouve
 
return thedate or theplace --retourne tout ce qu'il trouve
 +
end
 +
end
 +
 +
 +
local function setgender(item, localdata) -- pour adapter le masculin/féminin
 +
if not item then return end -- utiliser des paramètres de localdata ?
 +
local g = wikidata._formatStatements{item= item, property = 'P21', format = 'raw'}
 +
if g == 'Q6581072' then
 +
sex = 'f'
 +
elseif g == 'Q6581097' then
 +
sex = 'm'
 +
else
 +
g = '?'
 
end
 
end
 
end
 
end
Ligne 35 : Ligne 48 :
 
label = 'Naissance',
 
label = 'Naissance',
 
value =
 
value =
function(localdata, item)
+
function()
 
local thedate, theplace = localdata['date de naissance'], localdata['lieu de naissance']
 
local thedate, theplace = localdata['date de naissance'], localdata['lieu de naissance']
 
if not thedate then
 
if not thedate then
thedate = wikidata._formatAndCat({property= 'P569', rank = 'best', conjunction= ' ou '})
+
thedate = wikidata._formatAndCat({item = item, property= 'P569', rank = 'best', conjunction= ' ou '})
 
end
 
end
 
if not theplace then
 
if not theplace then
theplace =  wikidata._formatAndCat({property= 'P19', rank = 'best', conjunction= ' ou '})
+
theplace =  wikidata._formatAndCat({item = item, property= 'P19', rank = 'best', conjunction= ' ou '})
 
end
 
end
 
return dateandplace(thedate, theplace)
 
return dateandplace(thedate, theplace)
Ligne 53 : Ligne 66 :
 
label = 'Décès',
 
label = 'Décès',
 
value =
 
value =
function(localdata, item)
+
function()
 
local thedate, theplace = localdata['date de décès'], localdata['lieu de décès']
 
local thedate, theplace = localdata['date de décès'], localdata['lieu de décès']
 
if not thedate then
 
if not thedate then
thedate = wikidata._formatAndCat({property= 'P570', rank = 'best', conjunction= ' ou '})
+
thedate = wikidata._formatAndCat{item= item, property= 'P570', rank = 'best', conjunction= ' ou '}
 
end
 
end
 
if not theplace then
 
if not theplace then
theplace =  wikidata._formatAndCat({property= 'p20', rank = 'best', conjunction= ' ou '})
+
theplace =  wikidata._formatAndCat{item = item, property= 'p20', rank = 'best', conjunction= ' ou '}
 
end
 
end
 
return dateandplace(thedate, theplace)
 
return dateandplace(thedate, theplace)
Ligne 74 : Ligne 87 :
 
}
 
}
 
end
 
end
 +
 +
-- parcours professionel
 +
function p.education() -- à améliorer
 +
return {
 +
type = 'mixed',
 +
label = 'Formation',
 +
value = function() return locadata['éducation'] or localdata['formation'] end,
 +
wikidata = function() return wikidata._formatAndCat{item=item, property = 'P69', showdate = true, conjtype = '<br />'} end
 +
}
 +
end
 +
 +
function p.awards() -- à améliorer
 +
return {
 +
type = 'mixed',
 +
label = 'Distinctions',
 +
value = 'prix',
 +
wikidata = function() return wikidata._formatAndCat{item = item, property= 'P166', sorttype= 'chronological' , showdate= true, conjtype= '<br />'} end,
 +
}
 +
end
 +
 +
 
-- Influences  
 
-- Influences  
 
function p.influencedby()
 
function p.influencedby()

Version du 10 octobre 2014 à 08:19

La documentation pour ce module peut être créée à Module:Infobox/Fonctions/Personne/doc

-- Functions utilisées par les infobox personnes
local p = {}
local wikidata = require('Module:Wikidata')
local general = require('Module:Infobox/Fonctions')
local gender -- set by setgender

-- ========== Fonctions d'aide ====================================

local function dateandplace(thedate, theplace) 
	if thedate and theplace then
		return thedate .. '<br />' .. theplace
	else
		return thedate or theplace --retourne tout ce qu'il trouve
	end
end


local function setgender(item, localdata) -- pour adapter le masculin/féminin
	if not item then return end 	-- utiliser des paramètres de localdata ? 
	local g = wikidata._formatStatements{item= item, property = 'P21', format = 'raw'}
	if g == 'Q6581072' then
		sex = 'f'
	elseif g == 'Q6581097' then
		sex = 'm'
	else
		g = '?'
	end
end

--Titre
function p.title()
	return {
			type = 'title',
			value = 'nom',
			class = 'entete icon humain', 
	}
end

--Image
function p.mainimage()
	return  general.mainimage()
end

--Naissance, décès 
function p.birth() -- date de naissance en première ligne, lieu de naissance en deuxième
	return {
		type = 'mixed',
		label = 'Naissance',
		value =
			function()
					local thedate, theplace = localdata['date de naissance'], localdata['lieu de naissance']
					if not thedate then
						thedate = wikidata._formatAndCat({item = item, property= 'P569', rank = 'best', conjunction= ' ou '})
					end
					if not theplace then
						theplace =  wikidata._formatAndCat({item = item, property= 'P19', rank = 'best', conjunction= ' ou '})
					end
					return dateandplace(thedate, theplace)
			end
	}
end

function p.death() -- même fonctionnement que la fonction p.birth
	return {
		type = 'mixed',
		label = 'Décès',
		value =
			function()
					local thedate, theplace = localdata['date de décès'], localdata['lieu de décès']
					if not thedate then
						thedate = wikidata._formatAndCat{item= item, property= 'P570', rank = 'best', conjunction= ' ou '}
					end
					if not theplace then
						theplace =  wikidata._formatAndCat{item = item, property= 'p20', rank = 'best', conjunction= ' ou '}
					end
					return dateandplace(thedate, theplace)
			end
	}
end

function p.nationality() --pour l'instant, ne retourne que la valeur donnée par le paramètre nationalité, ou, à defaut, la propriété p570 de Wikidata, à retravailler pour le formatage.
	return {
		type = 'mixed',
		label = 'Nationalité',
		value = 'nationalité',
		property = 'P27'
	}
end

-- parcours professionel
function p.education() -- à améliorer
	return {
		type = 'mixed',
		label = 'Formation',
		value = function() return locadata['éducation'] or localdata['formation'] end,
		wikidata = function() return wikidata._formatAndCat{item=item, property = 'P69', showdate = true, conjtype = '<br />'} end
	}
end

function p.awards() -- à améliorer
	return {
		type = 'mixed',
		label = 'Distinctions',
		value = 'prix',
		wikidata = function() return wikidata._formatAndCat{item = item, property= 'P166', sorttype= 'chronological' , showdate= true, conjtype= '<br />'} end,
	}
end


-- Influences 
function p.influencedby()
	return {
		type = 'mixed',
		label = 'Influencé par',
		value = 'influencé par',
		property = 'P737',
    }
end

function p.influenced()
	return {
		type = 'mixed',
		label = 'A influencé',
		value = 'a influencé',
		property = 'P738',
}
end

-- Signature
function p.signature(default)
	return {
		type = 'images',
		imageparameters =  {'signature'},
		defaultimage = {default},
		captionparameter = 'légende signature',
		defaultcaption = 'signature',
		defaultcaption = function() return defaultcaption end,
		property = 'P109',
		numval = 1
	}
end

--== Site web
function p.website()
	return p.website()
end

return p