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

De Lagny-sur-Marne Wiki
Aller à : navigation, rechercher
(évite de mélanger données Wikidata et données locales)
("icon" plutôt que "class" pour avoir la petite icône (dont je ne suis en fait vraiment pas convaincu de l'intérêt))
Ligne 38 : Ligne 38 :
 
type = 'title',
 
type = 'title',
 
value = 'nom',
 
value = 'nom',
class = 'entete icon humain',  
+
icon = 'Picto_infobox_manwoman.png',  
 
}
 
}
 
end
 
end

Version du 15 décembre 2014 à 17:30

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(localdata, item) -- établit la valeur de la variable "gender" qui sert à adapter la grammaire au sexe de la personne
	if localdata['sexe'] or localdata['genre'] then
		gendertable = {f = 'f' , ['féminin'] = 'f', femme = 'f', homme = 'm', m = 'm', masculin = 'm'}
		gender = gendertable[(localdata['sexe'] or localdata['genre'])]
		if not gender then gender = '?' end
		return
	end
	local g = wikidata._formatStatements{item= item, property = 'P21', format = 'raw'}
	if g == 'Q6581072' then
		gender = 'f'
	elseif g == 'Q6581097' then
		gender = 'm'
	else
		gender = '?'
	end
end

--Titre
function p.title()
	return {
			type = 'title',
			value = 'nom',
			icon = 'Picto_infobox_manwoman.png', 
	}
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(localdata, item)
					local thedate = localdata['date de naissance'] or localdata['naissance'] 
					local theplace = localdata['lieu de naissance']
					if not thedate then
						thedate = wikidata._formatAndCat({item = item, property= 'P569', rank = 'best', conjtype= ' ou '})
						if not theplace then
							-- mis ici  pour ne pas récupérer le lieu Wikidata si la date ne vient pas de Wikidata (risque de collision)
							theplace =  wikidata._formatAndCat({item = item, property= 'P19', rank = 'best', conjtype= ' ou '})
						end
					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(localdata, item)
					local thedate = localdata['date de décès'] or localdata['décès']
					local theplace = localdata['lieu de décès']
					if not thedate then
						thedate = wikidata._formatAndCat{item= item, property= 'P570', rank = 'best', conjtype= ' ou '}
						if not theplace then
							-- mis ici  pour ne pas récupérer le lieu Wikidata si la date ne vient pas de Wikidata (risque de collision)
							theplace =  wikidata._formatAndCat({item = item, property= 'P20', rank = 'best', conjtype= ' ou '})
						end
					end
					return dateandplace(thedate, theplace)
			end
	}
end

function p.nationality() --
	return {
		type = 'mixed',
		label = 'Nationalité',
		value = 'nationalité',
--		property = 'P27' que faire avec les données Wikidata Parfois, elle peuvent paraitre discutable du type Platon : "Athènes" ou "Goethe: Allemagne".
	}
end

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


-- Influences 
function p.influencedby()
	return {
		type = 'mixed',
		label = 
		function(localdata, item) 
		if not gender then setgender(localdata, item) end
		if gender == 'f' then
			return 'Influencée par'
		elseif gender == 'm' then
			return 'Influencé par'
		else
			return 'Influencé(e) par'
		end
		end,
		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',
		property = 'P109',
		numval = 1
	}
end

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

return p