Mòdul:Protecció patrimonial
Aparença
Documentació del mòdul [ mostra ] [ modifica el codi ] [ mostra l'historial ] [ refresca ]
A continuació es mostra la documentació transclosa de la subpàgina /ús. [salta a la caixa de codi]
Mòdul de suport per {{Protecció patrimonial/prepara}}. Té una única funció BIC per tractar la protecció Bé d'interès cultural (Q23712) i assimilats: Bé d'Interès Cultural genèric (Q26932982), Bé cultural d'interès nacional (Q1019352), Bé d'Interès Cultural d'Aragó (Q55190536):
- No mostra la protecció BIC quan és obsoleta per altres figures equivalents.
- Mostra tots els identificadors: Codi de Bé d'Interès Cultural (P808), Codi de Bé Cultural d'Interès Nacional (P1586), Identificador Inventari del Patrimoni Arquitectònic de Catalunya (P1600), Codi IGPCV (P2473), Codi SIPCA (P3580).
Dependències:
- Plantilla:Protecció patrimonial/publica, per formatar les dades obtingudes
- Mòdul:Wikidades amb la funció getLable.
local p = {}
-- get safely a serialized snak
local function getSnak(statement, snaks)
local ret = statement
for i, v in ipairs(snaks) do
if ret == nil then break end
ret = ret[v]
end
return ret
end
-- Fetch all ids for BIC/BCIN in Spain
function p.BIC(frame)
local args = frame:getParent().args
local id = args[1]; if id == "" then id = nil end
local id_prot = args[2]
local lang = args.lang; if lang == "" or lang == nil then lang = mw.language.getContentLanguage().code end
local entity = mw.wikibase.getEntity(id)
if not entity then return end
-- if BCIN or BIC-Aragon exists then BIC is deprecated
if id_prot == "Q23712" or id_prot == "Q26932982" then -- BIC or generic BIC
local prot_list = entity:getBestStatements('P1435')
for _, statm in ipairs(prot_list) do
local id_p = getSnak(statm, {"mainsnak", "datavalue", "value", "id"})
if id_p == "Q1019352" or id_p == "Q55190536" then -- BCIN or BIC Aragon
return
end
end
end
--fetch all registers
local reg = {}
reg.bic = entity:getBestStatements('P808')
reg.bcin = entity:getBestStatements('P1586')
reg.ipac = entity:getBestStatements('P1600')
reg.ipapc = entity:getBestStatements('P5957')
reg.igpcv = entity:getBestStatements('P2473')
reg.sipca = entity:getBestStatements('P3580')
if reg.bic then reg.bic.id = getSnak(reg.bic[1], {"mainsnak", "datavalue", "value"}) end
if reg.bcin then reg.bcin.id = getSnak(reg.bcin[1], {"mainsnak", "datavalue", "value"}) end
if reg.ipac then reg.ipac.id = getSnak(reg.ipac[1], {"mainsnak", "datavalue", "value"}) end
if reg.ipapc then reg.ipapc.id = getSnak(reg.ipapc[1], {"mainsnak", "datavalue", "value"}) end
if reg.igpcv then reg.igpcv.id = getSnak(reg.igpcv[1], {"mainsnak", "datavalue", "value"}) end
if reg.sipca then reg.sipca.id = getSnak(reg.sipca[1], {"mainsnak", "datavalue", "value"}) end
-- ids linked
if reg.ipac and reg.ipac.id then
reg.ipac.id = "[http://invarquit.cultura.gencat.cat/Cerca/Fitxa?index=0&consulta=&codi=" .. reg.ipac.id .. " " .. reg.ipac.id .. "]"
end
if reg.ipapc and reg.ipapc.id then
reg.ipapc.id = "[http://invarque.cultura.gencat.cat/Fitxa?index=0&consulta=&codi=" .. reg.ipapc.id .. " " .. reg.ipapc.id .. "]"
end
if reg.igpcv and reg.igpcv.id then
local url = getSnak(reg.igpcv[1], {"references", 1, "snaks", "P854", 1, "datavalue", "value"})
if url then
reg.igpcv.id = "[" .. url .. " " .. reg.igpcv.id .. "]"
end
end
if reg.sipca and reg.sipca.id then
reg.sipca.id = "[http://www.sipca.es/censo/" .. reg.sipca.id .. "/.html" .. " " .. reg.sipca.id .. "]"
end
-- concat ids
reg.id = {}
if reg.bcin and reg.bcin.id then
table.insert(reg.id, "BCIN: " .. reg.bcin.id)
end
if reg.igpcv and reg.igpcv.id then
table.insert(reg.id, "IGPCV: " .. reg.igpcv.id)
end
if reg.sipca and reg.sipca.id then
table.insert(reg.id, "SIPCA: " .. reg.sipca.id)
end
if reg.bic and reg.bic.id then
table.insert(reg.id, "BIC: " .. reg.bic.id)
end
if reg.ipac and reg.ipac.id then
table.insert(reg.id, "IPAC: " .. reg.ipac.id)
end
if reg.ipapc and reg.ipapc.id then
table.insert(reg.id, "IPAPC: " .. reg.ipapc.id)
end
local reg_id = table.concat(reg.id, "<br />")
-- format output
local params = {}
params.lang = args.lang
params.item = args[1]
params.id_proteccio = args[2]
params.proteccio = require("Module:Wikidades").getLabel({id_prot, ['lang']=lang})
params.designa_oficial = args[8]
params.data_inici = args[3]
params.any = args[9]
params.data_fi = args[4]
params.motiu_baixa = args[6]
params.estat = "Q29"
params.identificador = reg_id
return frame:expandTemplate{title = "Protecció patrimonial/publica", args = params}
end
return p