Module:Infobox/Animal
[voir] [modifier] [historique] [purger]
Cette page définit un module d'infobox. Pour les conseils sur l'usage de ce module, voyez Modèle:Infobox Animal.
La documentation de ce module est générée par le modèle {{Documentation module}}.
Elle est incluse depuis la page Modèle:Documentation module d'infobox. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (créer).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
local localdata = require( 'Module:Infobox/Localdata' )
local general = require "Module:Infobox/Fonctions"
local wd = require "Module:Wikidata"
local linguistic = require "Module:Linguistique"
local person = require "Module:Infobox/Fonctions/Personne"
-- Si vous modifiez ce tableau, n'oubliez pas de mettre à jour la section 'Chartes graphiques' de [[Modèle:Infobox Animal célèbre/Documentation]]
local speciesformats = {
--{espèce, espèce, couleur titre, couleur sous-titre, couleur texte, icône) doivent être classés du plus spécifique au plus général
{'Q144', 'chien', '#947151', '#B08660', '#000000', 'defaut'}, -- brun foncé
{'Q146', 'chat', '#474747', '#787878', '#FFFFFF', 'defaut'}, -- noir/gris
{'Q726', 'cheval', '#D2B48C', '#D2B48C', '#FFFFFF', 'defaut'}, -- brun clair (comme [[Modèle:Infobox Cheval]])
{'Q36341', 'ours brun', '#8A5030', '#B37659', '#FFFFFF', 'defaut'}, -- brun soutenu
{'Q839769', 'ours brun', '#8A5030', '#B37659', '#FFFFFF', 'defaut'}, -- brun soutenu
{'Q237260', 'ours brun', '#8A5030', '#B37659', '#FFFFFF', 'defaut'}, -- brun soutenu
}
local function setformat() --retourne une table contenant la couleur principale de l'infobox et l'icône de titre
local species = wd.getIds(localdata.item, {property = 'P31'}) -- récupère les Qid des espèces
if not species or (#species > 1) then -- si plusieurs espèces, on ne sait pas laquelle choisir
return {'Q', '', '#DFDFDF', '#D9D9D9', '#000000', 'defaut'}
end
species = wd.addVals(species, {property = 'P279'}, 2) -- nombre d'étages de sous-classes à remonter
for i, j in pairs(species) do
for k, l in pairs(speciesformats) do
if l[1] == j then
return l
end
end
end
return {'Q', '', '#DFDFDF', '#D9D9D9', '#000000', 'defaut'}
end
local function setcharte()
local charte = localdata['charte']
if charte then
for i, j in pairs(speciesformats) do
if j[2] == charte then
return j
end
end
end
return setformat()
end
local personformat = setcharte()
local function documentation()
local lines = {}
table.insert(lines , '{| class="wikitable sortable" style="width:100%"')
table.insert(lines , '|-')
table.insert(lines , '! style="width:10%" | Charte')
table.insert(lines , '! style="width:10%" | Élément Wikidata')
table.insert(lines , '! style="width:10%" | Valeur primaire<br />(fond titre)')
table.insert(lines , '! style="width:10%" | Valeur secondaire<br />(sous-titre)')
table.insert(lines , '! style="width:10%" | Valeur tertiaire<br />(texte titre)')
table.insert(lines , '! style="width:10%" | Icône<br />([[Projet:Infobox/Pictogramme|liste]])')
table.insert(lines , '! style="width:20%" | rendu titre')
table.insert(lines , '! style="width:20%" | rendu sous-titre')
table.sort(speciesformats, function (left, right)
return string.lower(left[2]):gsub('é','e') < string.lower(right[2]):gsub('é','e')
end)
table.insert(speciesformats, 1, {nil, nil, nil, nil, nil, nil})
for i, j in pairs(speciesformats) do
local wd = j[1] or ''
local charte = j[2] or 'par défaut'
local couleur1 = j[3] or '#CCCCAA'
local couleur2 = j[4] or '#D1CFAD'
local couleur3 = j[5] or '#000000'
local icone = j[6] or ''
local pict = ''
if icone ~= '' and icone ~= 'defaut' then
pict = mw.getCurrentFrame():extensionTag('templatestyles', '', {src = 'Infobox/Pictogramme/' .. mw.text.trim(icone) .. '.css'})
end
table.insert(lines , '|-')
table.insert(lines , '! style="text-align:left;" | ' .. charte)
table.insert(lines , '| style="text-align:center;" | ' .. wd)
table.insert(lines , '| style="text-align:center;" | ' .. couleur1)
table.insert(lines , '| style="text-align:center;" | ' .. couleur2)
table.insert(lines , '| style="text-align:center;" | ' .. couleur3)
table.insert(lines , '| style="text-align:center;" | ' .. icone)
table.insert(lines , '| class="entete ' .. icone .. '" style="background-color:' .. couleur1 .. '; height:45px; text-align:center; font-size:150%; font-weight:bolder; color:' .. couleur3 .. ';" | titre ' .. pict)
table.insert(lines , '| style="background-color:' .. couleur2 .. '; height:45px; text-align:center; font-size:150%; font-weight:bolder; color:#000000;" | sous-titre')
end
table.insert(lines , '|}')
return table.concat(lines, "\n" )
end
return {
maincolor = personformat[3],
secondcolor = personformat[4],
thirdcolor = personformat[5],
documentation = documentation,
parts = {
general.title(),
general.mainimage('Article à illustrer Animal'), --rajouter upright
-- rajouter image drapeau P41 et blason P94
{type = 'table', title = 'Informations', rows = {
{type = 'row', label = 'Nom original', value = 'nom original', property = 'P1448'}, -- propriété à vérifier
{type = 'row', label = 'Espèce', value = 'espèce',
wikidata = {property = {'P31','P10241'}, targetclass = {"Q16521","Q55983715"}} -- n'affiche que les "taxons" ou les "groupe d'organismes connu par un nom commun"
},
{type = 'row', label = 'Race', value = 'race', property = 'P4743'},
{type = 'row', label = 'Couleur', value = 'couleur', property = 'P462'},
{type = 'row', label = 'Sexe', value = 'sexe', property = 'P21'},
{type = 'row', label = 'Date de naissance', value = 'date de naissance', property = 'P569'},
{type = 'row', label = 'Lieu de naissance', value = 'lieu de naissance', property = 'P19'},
{type = 'row', label = 'Pays d\'origine', value = 'pays', property = 'P495'},
{type = 'row', label = 'Lieu de vie', value = 'lieu de vie', property = 'P551'},
{type = 'row', label = 'Date de décès', value = 'date de décès', property = 'P570'},
{type = 'row', label = 'Lieu de décès', value = 'lieu de décès', property = 'P20'},
{type = 'row', label = 'Cause de décès', value = 'cause de décès', property = 'P509'},
{type = 'row', label = 'Taille', value = 'taille', property = 'P2048'},
{type = 'row', label = 'Masse', value = 'masse', property = 'P2067'},
person.family(),
{type = 'row', label = 'Occupation', value = 'occupation', property = 'P106'},
{type = 'row', label = 'Activité', plurallabel = 'Activités', value = 'activité', property = 'P101'},
{type = 'row', label = 'Propriétaire', plurallabel = 'Propriétaires', value = 'propriétaire', property = 'P127'},
{type = 'row', label = 'Fait notable', value = 'notabilité'},
{type = 'row', label = 'Distinction(s)', value = 'distinction', property = 'P166'},
{type = 'row', label = 'Notes', value = 'notes'},
}},
}
}