Vés al contingut

Mòdul:Protecció patrimonial

De la Viquipèdia, l'enciclopèdia lliure
Icona de documentació de mòdul Documentació del mòdul [ mostra ] [ modifica el codi ] [ mostra l'historial ] [ refresca ]

Mòdul Protecció patrimonial (codi · ús · discussió · proves · tests · casos prova | subpàgines · enllaços)

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):

Dependències:

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