Module:Infobox/Biographie

De Lagny-sur-Marne Wiki
< Module:Infobox
Révision datée du 26 janvier 2016 à 17:43 par Oliv0 (discussion) (professions en sous-classes sur Wikidata « du plus spécifique au plus général » = fondeur avant pratiquant de sports d'hiver sinon ça ne marche pas)
Aller à : navigation, rechercher

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

local person = require "Module:Infobox/Fonctions/Personne"
local wd = require "Module:Interface Wikidata".fromLua

local occupationformats = {
	--{profession, couleur, icône)  doivent être classés du plus spécifique au plus général
	{'Q947873',  '#D9D9FF', 'television'}, -- animateur audiovisuel
	{'Q191633',  '#80DDBF', 'bd'}, -- mangaka
	{'Q3285854',  '#80DDBF', 'bd'}, -- manhwaga
	{'Q3285832',  '#80DDBF', 'bd'}, -- manhuajia
	{'Q715301',  '#FFEEAA', 'bd'}, -- auteur de bande dessinée
	{'Q1350189', '#CCCCAA', 'egypte-antique'}, -- égyptologue
	{'Q3621491', '#CCCCAA', 'defaut'}, -- archéologue
	{'Q42973', '#4C6099', 'defaut', '#FFFFFF'}, -- architecte
	{'Q2159907', '#F2F2F2', 'defaut'}, -- criminel
	{'Q11900058', '#EEEEFF', 'map'}, -- explorateur
	{'Q12039558', '#EEEEFF', 'jeu'}, -- joueur de go
	{'Q15295720', '#4E957D', 'poker'}, -- joueur de poker
	{'Q14467526', '#CFA0E9', 'auteur'}, -- linguiste
	{'Q177220', '#B6CCDE', 'musique'}, -- chanteur
	{'Q1278335', '#D2C6B6', 'musique'}, -- instrumentiste
	{'Q3089940', '#B4CDCD', 'musique'}, -- producteur de musique
	{'Q36834', '#B4CDCD', 'musique'}, -- compositeur
	{'Q1643514', '#B4CDCD', 'musique'}, -- arrangeur
	{'Q15981151', '#B2FFC6', 'musique'}, -- musicien de jazz
	{'Q5716684', '#FFFF80', 'musique'}, -- danseur
	{'Q1954956', '#D9B2FF', 'musique'}, -- acteur de comédie musicale
	{'Q2259451', '#B03030', 'persofiction'}, -- acteur de théâtre
	{'Q4964182', '#B0C4DE', 'auteur'}, -- philosophe
	{'Q11631', '#FFDEAD', 'defaut'}, -- astronaute
	{'Q17125263', '#FF0000', 'informatique'}, -- YouTubeur
	{'Q854997', '#FFD068', 'defaut'}, -- moine bouddhiste
	{'Q245068', '#FF8080', 'persofiction'}, -- humoriste
	{'Q488111', '#FF66B3', 'cinema'}, -- acteur de films pornographiques
	{'Q10800557', '#09C8BD', 'cinema'}, -- acteur de films
	{'Q7042855', '#09C8BD', 'cinema'}, -- monteur
	{'Q3282637', '#09C8BD', 'cinema'}, -- producteur de cinéma
	{'Q37110', '#AAAA80', 'egypte-antique'}, -- pharaon
	{'Q728711', '#FF66B3', 'humain'}, -- Playmate
	{'Q193391', '#A0C0F0', 'humain'}, -- participant à un concours de beauté
	{'Q203184', '#DCDCDC', 'defaut'}, -- diplomate
	{'Q203184', '#DCDCDC', 'defaut'}, -- première dame
	{'Q5784340', '#723E64', 'pretendant'}, -- consort
	{'Q207293', '#5977A8', 'pretendant'}, -- prince héritier
	{'Q2747456', '#878787', 'pretendant'}, -- prince
	{'Q845929', '#EAAC00', 'pretendant'}, -- prétendant au trône
	{'Q4610556', '#FFB6C1', 'humain'}, -- mannequin
	{'Q2478141', '#DFDFDF', 'defaut'}, -- aristocrate
	{'Q37349', '#FF8888', 'humain'}, -- dalaï-lama
	{'Q842606', '#FFB6C1', 'defaut'}, -- empereur romain
	{'Q268218', '#FFD700', 'defaut'}, -- empereur de Chine
	{'Q116', '#000080', 'pretendant', '#FFFFFF'}, -- monarque
	{'Q11811941', '#FF0000', 'defaut'}, -- conseiller fédéral suisse
	{'Q2285706', '#6688FF', 'defaut'}, -- chef de gouvernement
	{'Q48352', '#0033CC', 'defaut'}, -- chef d'État
	{'Q15319501', '#5A71CE', 'default'}, -- spécialiste des sciences sociales
	{'Q133485', '#B7B7FF', 'israel-judaisme'}, -- rabbin
	{'Q191421', '#FF8888', 'defaut'}, -- lama
	{'Q619896', '#8000FF', 'defaut'}, -- catholicos
	{'Q9149093', '#BFD7FF', 'alpinisme'}, -- alpiniste
	{'Q13382355', '#FADA5E', 'arc'}, -- archer
	{'Q11513337', '#D7877B', 'athletisme'}, -- athlète
	{'Q13381753', '#D7877B', 'athletisme'}, -- coureur de demi-fond
	{'Q13381494', '#D7877B', 'athletisme'}, -- coureur de fond
	{'Q4009406', '#D7877B', 'athletisme'}, -- sprinteur
	{'Q13464497', '#D7877B', 'athletisme'}, -- perchiste
	{'Q13856320', '#D7877B', 'athletisme'}, -- lanceur de marteau
	{'Q18510502', '#D7877B', 'athletisme'}, -- lanceur de javelot
	{'Q13381689', '#D7877B', 'athletisme'}, -- lanceur de disque
	{'Q18534714', '#D7877B', 'athletisme'}, -- lanceur de poids
	{'Q13382122', '#D7877B', 'athletisme'}, -- sauteur en hauteur
	{'Q13381428', '#D7877B', 'athletisme'}, -- sauteur en longueur
	{'Q13848274', '#D7877B', 'athletisme'}, -- triple sauteur
	{'Q17405793', '#D7877B', 'athletisme'}, -- marcheur
	{'Q19595175', '#FFDFA2', 'lutte'}, -- lutteur
	{'Q13382576', '#BFD7FF', 'aviron'}, -- avironneur
	{'Q10871364', '#408080', 'baseball'}, -- joueur de baseball
	{'Q3665646', '#DD8F56', 'basket-ball', '#FFFFFF'}, -- joueur de basket-ball
	{'Q11338576', '#85A3C2', 'boxe'}, -- boxeur
	{'Q13382566', '#BFD7FF', 'kayak'}, -- canoéiste
	{'Q2309784', '#FFDF80', 'cyclisme'}, -- coureur cycliste
	{'Q13381863', '#C0BBDB', 'escrime'}, -- escrimeur
	{'Q18515558', '#99CC99', 'futsal'}, -- joueur de futsal
	{'Q937857', '#99CC99', 'footballblack'}, -- footballeur
	{'Q19841381', '#BFD33C', 'defaut'}, -- joueur de football canadien
	{'Q16947675', '#B0C4DE', 'gymnastique'}, -- gymnaste
	{'Q13156709', '#007700', 'golf'}, -- golfeur
	{'Q3951423', '#BFD7FF', 'escalade'}, -- grimpeur
	{'Q13365117', '#E0D080', 'handballblack'}, -- handballeur
	{'Q9017214', '#FFDFA2', 'karate'}, -- karatéka
	{'Q6665249', '#FFDFA2', 'judo'}, -- judoka
	{'Q16004471', '#BFD7FF', 'kayak'}, -- kayakiste
	{'Q11774891', '#DFEDFF', 'hockey'}, -- joueur de hockey sur glace
	{'Q10843263', '#BFD7FF', 'hockey-sur-gazon'}, -- joueur de hockey sur gazon
	{'Q10843402', '#318CE7', 'natation', '#FFFFFF'}, -- nageur
	{'Q15958185', '#B4B9C3', 'sport-automobile'}, -- pilote automobile
	{'Q3014296', '#B4B9C3', 'sport-automobile'}, -- pilote de moto
	{'Q2730732', '#D2B48C', 'equitation'}, -- cavalier
	{'Q20900796', '#BFD7FF', 'rinkhockey'}, -- joueur de rink hockey
	{'Q13415036', '#336699', 'rugby', '#FFFFFF'}, -- rugbyman
	{'Q13561328', '#99CCFF', 'surf'}, -- surfeur
	{'Q10833314', '#FFAA77', 'tennis'}, -- joueur de tennis
	{'Q13141064', '#FFAA77', 'badminton'}, -- joueur de badminton
	{'Q16278103', '#FFAA77', 'squash'}, -- joueur de squash
	{'Q13382519', '#FFAA77', 'tennis-de-tableblack'}, -- joueur de tennis de table
	{'Q15117302', '#97D98C', 'volleyball'}, -- volleyeur
	{'Q17524364', '#BFD7FF', 'water-polo'}, -- joueur de water-polo
	{'Q549322', '#AA3333', 'defaut'}, -- torero
	{'Q12299841', '#AA3333', 'defaut'}, -- joueur de cricket
	{'Q13474373', '#DFEDFF', 'catch'}, -- catcheur
	{'Q202648', '#CCE6CC', 'arbitre'}, -- arbitre sportif
	{'Q103163', '#8C8C8C', 'defaut'}, -- abbé
	{'Q1646408', '#8C8C8C', 'defaut'}, -- abbesse
	{'Q611644', '#66CC80', 'eveque'}, -- évêque catholique
	{'Q49476', '#66CC80', 'eveque'}, -- archévêque
	{'Q171692', '#66CC80', 'defaut'}, -- patriarche
	{'Q45722', '#DE143C', 'cardinal'}, -- cardinal
	{'Q19546', '#FED600', 'defaut'}, -- pape
	{'Q172748', '#FED600', 'defaut'}, -- antipape
	{'Q9591034', '#FED600', 'defaut'}, -- bienheureux
	{'Q43115', '#FED600', 'defaut'}, -- saint
	{'Q42603', '#8C8C8C', 'defaut'}, -- prêtre
	{'Q725440', '#AA0052', 'defaut'}, -- prélat
	{'Q81066', '#6495ED', 'defaut'}, -- secrétaire général de l'ONU
	{'Q20778343', '#F2F2F2', 'defaut'}, -- magistrat romain
	{'Q15253558', '#E1E1E1', 'defaut'}, -- militant
	{'Q1250916', '#EEEEFF', 'defaut'}, -- guerrier
	{'Q2722764', '#D9D9FF', 'communication'}, -- animateur de radio
	{'Q3186984', '#D9D9FF', 'presse'}, -- journaliste de presse écrite
	{'Q1930187', '#D9D9FF', 'defaut'}, -- journaliste
	{'Q17291399', '#09c8bd', 'cinema'}, -- personnalité du cinéma
	{'Q13382608', '#DFEDFF', 'fondeur'}, -- fondeur
	{'Q20965770', '#DFEDFF', 'defaut'}, -- pratiquant de sports d'hiver
	{'Q11607585', '#FFDFA2', 'artsmartiauxjap'}, -- pratiquant d'arts martiaux mixtes
	{'Q11124885', '#FFDFA2', 'artsmartiauxjap'}, -- pratiquant d'arts martiaux
	{'Q2066131', '#BFD7FF', 'defaut'}, -- sportif
	{'Q82955', '#4682B4', 'defaut', '#FFFFFF'}, -- personnalité politique
	{'Q36180', '#4C6099', 'auteur', '#FFFFFF'}, -- écrivain
	{'Q33999', '#EEEEFF', 'persofiction'}, -- acteur
	{'Q639669', '#EEEEFF', 'musique'}, -- musicien
	{'Q483501', '#7DA7D9', 'artiste'}, -- artiste
	{'Q488111', '#FF66B3', 'cinema'}, -- acteur pornographique
	{'Q901', '#EEEEFF', 'defaut'}, -- scientifique
}

local function setformat() --retourne une table contenant la couleur principale de l'infobox et l'icône de titre
	local occupations = wd.stringTable{entity = item, property = 'P106', displayformat = 'raw', excludespecial = true} -- récupère les Qid des professions
	if not occupations or (#occupations > 1) then -- si plusieurs occupations, on ne sait pas laquelle choisir
		return  {'#EEEEFF', 'defaut'}
	end
	occupations = wd.addVals(occupations, {property = 'P279'}, 2) -- nombre d'étages de sous-classes à remonter
	for i, j in pairs(occupationformats) do
		for k, l in pairs(occupations) do
			if j[1] == l then
				return j
			end
		end
	end
	return {'#EEEEFF', 'defaut'}
end
local personformat = setformat()
return
	{
	maincolor = personformat[2],
	secondcolor = personformat[4],
	parts =
    	{
			person.title(personformat[3]),
			person.mainimage(),
			{type = 'table',rows = {
				person.birth(),
				person.death(),
				person.othernames(),
				person.nationality(),
				person.places(),
				person.education(),
				person.occupation(),
				{type = 'row', label = 'Organisation', plurallabel = 'Organisations', value = 'organisation', property = 'P1268'},
				person.employer(),
				{type = 'row', label = 'Domaine', plurallabel = 'Domaines', value = 'domaine', property = 'P101'},
                {type = 'row', label = 'Propriétaire de', value = 'propriétaire de', property = 'P1830'},
				person.politicalparty(),
                person.memberof(),
				person.military(),
				person.sport(),
				{type = 'row', label = 'Grade', plurallabel = 'Grades', value= 'grade', property = 'P468'},
				{type = 'row', label = 'Ordre religieux', plurallabel = 'Ordres religieux', value = 'ordre religieux', property = 'P611'},
				person.music(),
				person.contacts(),
				person.movement(),
				{type = 'row', label = 'Genre artistique', plurallabel= 'Genres artistiques', value= 'genre artistique', property = 'P136'},
				{type = 'row', label = 'Adjectifs dérivés', value = 'adjectifs dérivés'},
				person.appearance(),
				-- {type = 'row', label = 'Groupe ethnique', plurallabel= 'Groupes ethniques', value= 'groupe ethnique', property = 'P172'},
				person.family(),
				person.awards(),
				person.filmography(),
				person.discography(),
				person.website(),
				{type = 'row', label = 'Blog officiel', value = 'blog officiel', property = 'P1581'},
				},
			},
			person.officialposition(),
			person.nobilitytitle(),
			person.honorifictitle(),
			person.works(),
			person.signature(),
		}
	}