Module:Infobox/Monument : Différence entre versions
m (ajout cat de maintenance) |
(+ marker et default_zoom) |
||
(28 révisions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
local building = require "Module:Infobox/Fonctions/Bâtiment" | local building = require "Module:Infobox/Fonctions/Bâtiment" | ||
local general = require "Module:Infobox/Fonctions" | local general = require "Module:Infobox/Fonctions" | ||
− | local | + | local localdata = require "Module:Infobox/Localdata" |
− | local | + | local wd = require "Module:Interface Wikidata".fromLua |
− | local function | + | local formats = { |
− | local | + | --{valeur wikidata, icône, couleur titre, couleur sous-titre, couleur texte) |
− | if not | + | {'Q751876', 'entete chateau','#00507f', '#ffffff', '#000000', 'defaut'}, --château |
− | for i, j in pairs( | + | } |
− | + | ||
− | + | local function wdformat() --retourne une table contenant la couleur principale de l'infobox et l'icône de titre | |
− | + | local wtypes = wd.stringTable{ -- récupère les Qid des professions | |
− | + | entity = localdata.item, | |
− | + | property = 'P31', | |
+ | displayformat = 'raw', | ||
+ | excludespecial = true | ||
+ | } | ||
+ | local defaultformat = {'Q', '', '#E1E1E1', '#E1E1E1', '#000000', 'defaut'} | ||
+ | if not wtypes or (#wtypes > 1) then -- si plusieurs occupations, on ne sait pas laquelle choisir | ||
+ | return defaultformat | ||
+ | end | ||
+ | wtypes = wd.addVals(wtypes, {property = 'P279'}, 2) -- nombre d'étages de sous-classes à remonter | ||
+ | for i, j in pairs(wtypes) do | ||
+ | for k, l in pairs(formats) do | ||
+ | if l[1] == j then | ||
+ | return l | ||
+ | end | ||
end | end | ||
− | |||
end | end | ||
− | return | + | return defaultformat |
+ | end | ||
+ | local function setcharte() | ||
+ | if localdata['charte'] then | ||
+ | charte = localdata['charte'] | ||
+ | for i, j in pairs(formats) do | ||
+ | if j[2] == charte then | ||
+ | return j | ||
+ | end | ||
+ | end | ||
+ | end | ||
+ | return wdformat() | ||
end | end | ||
+ | local displayfrmat = setcharte() | ||
return | return | ||
{ | { | ||
− | maincolor = | + | maincolor = displayfrmat[3], |
+ | secondcolor = displayfrmat[4], | ||
+ | thirdcolor = displayfrmat[5], | ||
parts = | parts = | ||
{ | { | ||
− | general.title(), | + | general.title(displayfrmat[2], nil, 'nom local', nil), |
general.logo(), | general.logo(), | ||
building.mainimage(), | building.mainimage(), | ||
{type = 'table', title = 'Présentation', rows = { | {type = 'table', title = 'Présentation', rows = { | ||
− | {type = ' | + | {type = 'row', label = 'Noms précédents', value = 'noms précédents'}, |
− | + | {type = 'row', label = 'Surnom(s)', value = 'surnom'}, | |
− | {type = ' | + | {type = 'row', label = 'Nom complet', value = 'nom complet'}, |
− | {type = ' | + | {type = 'row', label = 'Culte', value = 'culte'}, |
− | {type = ' | + | {type = 'row', label = 'Type', value = 'type', property = 'P31'}, |
− | {type = ' | + | {type = 'row', label = 'Rattachement', value = 'rattachement'}, |
− | {type = ' | + | building.archistyle(), |
− | + | building.creator(), | |
− | + | building.material(), | |
− | + | building.construction(), | |
− | + | building.opening(), | |
− | + | building.renovation(), | |
− | {type = ' | + | building.demolition(), |
− | {type = ' | + | {type = 'row', label = 'Commanditaire', value = 'commanditaire', property = 'P88'}, |
− | + | {type = 'row', label = 'Hauteur', value = 'hauteur', wikidata = {property = 'P2048', targetunit = 'm'}}, | |
− | {type = ' | + | {type = 'row', label = 'Largeur', value = 'largeur', wikidata = {property = 'P2049', targetunit = 'm'}}, |
− | {type = ' | + | {type = 'row', label = 'Longueur', value = 'longueur', wikidata = {property = 'P2043', targetunit = 'm'}}, |
− | {type = ' | + | {type = 'row', label = 'Envergure', value = 'envergure', wikidata = {property = 'P2050', targetunit = 'm'}}, |
− | + | {type = 'row', label = 'Destination initiale', value = 'destination initiale'}, | |
− | }, | + | {type = 'row', label = 'Destination actuelle', value = 'destination actuelle'}, |
− | {type = ' | + | building.owner(), |
− | + | building.operator(), | |
− | + | building.protection(), | |
− | |||
building.website(), | building.website(), | ||
} | } | ||
Ligne 58 : | Ligne 83 : | ||
{type = 'table', title = 'Géographie', rows = { | {type = 'table', title = 'Géographie', rows = { | ||
building.country(), | building.country(), | ||
− | + | building.historicalregion(), | |
− | + | building.adminlocation(), | |
− | |||
− | |||
− | building. | ||
} | } | ||
}, | }, | ||
{type = 'table', title = 'Accès et transport', rows = { | {type = 'table', title = 'Accès et transport', rows = { | ||
− | + | building.transport(), | |
− | |||
− | |||
− | |||
− | |||
}, | }, | ||
}, | }, | ||
Ligne 77 : | Ligne 95 : | ||
} | } | ||
}, | }, | ||
− | + | general.geoloc({marker='monument', default_zoom=16}), | |
} | } | ||
} | } |
Version actuelle datée du 20 mai 2017 à 09:23
La documentation pour ce module peut être créée à Module:Infobox/Monument/doc
local building = require "Module:Infobox/Fonctions/Bâtiment" local general = require "Module:Infobox/Fonctions" local localdata = require "Module:Infobox/Localdata" local wd = require "Module:Interface Wikidata".fromLua local formats = { --{valeur wikidata, icône, couleur titre, couleur sous-titre, couleur texte) {'Q751876', 'entete chateau','#00507f', '#ffffff', '#000000', 'defaut'}, --château } local function wdformat() --retourne une table contenant la couleur principale de l'infobox et l'icône de titre local wtypes = wd.stringTable{ -- récupère les Qid des professions entity = localdata.item, property = 'P31', displayformat = 'raw', excludespecial = true } local defaultformat = {'Q', '', '#E1E1E1', '#E1E1E1', '#000000', 'defaut'} if not wtypes or (#wtypes > 1) then -- si plusieurs occupations, on ne sait pas laquelle choisir return defaultformat end wtypes = wd.addVals(wtypes, {property = 'P279'}, 2) -- nombre d'étages de sous-classes à remonter for i, j in pairs(wtypes) do for k, l in pairs(formats) do if l[1] == j then return l end end end return defaultformat end local function setcharte() if localdata['charte'] then charte = localdata['charte'] for i, j in pairs(formats) do if j[2] == charte then return j end end end return wdformat() end local displayfrmat = setcharte() return { maincolor = displayfrmat[3], secondcolor = displayfrmat[4], thirdcolor = displayfrmat[5], parts = { general.title(displayfrmat[2], nil, 'nom local', nil), general.logo(), building.mainimage(), {type = 'table', title = 'Présentation', rows = { {type = 'row', label = 'Noms précédents', value = 'noms précédents'}, {type = 'row', label = 'Surnom(s)', value = 'surnom'}, {type = 'row', label = 'Nom complet', value = 'nom complet'}, {type = 'row', label = 'Culte', value = 'culte'}, {type = 'row', label = 'Type', value = 'type', property = 'P31'}, {type = 'row', label = 'Rattachement', value = 'rattachement'}, building.archistyle(), building.creator(), building.material(), building.construction(), building.opening(), building.renovation(), building.demolition(), {type = 'row', label = 'Commanditaire', value = 'commanditaire', property = 'P88'}, {type = 'row', label = 'Hauteur', value = 'hauteur', wikidata = {property = 'P2048', targetunit = 'm'}}, {type = 'row', label = 'Largeur', value = 'largeur', wikidata = {property = 'P2049', targetunit = 'm'}}, {type = 'row', label = 'Longueur', value = 'longueur', wikidata = {property = 'P2043', targetunit = 'm'}}, {type = 'row', label = 'Envergure', value = 'envergure', wikidata = {property = 'P2050', targetunit = 'm'}}, {type = 'row', label = 'Destination initiale', value = 'destination initiale'}, {type = 'row', label = 'Destination actuelle', value = 'destination actuelle'}, building.owner(), building.operator(), building.protection(), building.website(), } }, {type = 'table', title = 'Géographie', rows = { building.country(), building.historicalregion(), building.adminlocation(), } }, {type = 'table', title = 'Accès et transport', rows = { building.transport(), }, }, {type = 'table', title = 'Localisation', rows = { building.coordinates(), } }, general.geoloc({marker='monument', default_zoom=16}), } }