Module:Infobox/Fonctions/Personne
< Module:Infobox | Fonctions
Révision datée du 15 décembre 2014 à 17:30 par Zolo (discussion) ("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))
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