Módulo:Clasificaciónvj/zona de pruebas

Este módulo no tiene página de documentación[crear]
local p = {}

local Entidad			-- Tabla con los datos en Wikidata del libro.
local ModuloArgumentos	= require('Módulo:Argumentos')
local Datos				= mw.loadData('Módulo:Clasificaciónvj/datos2')
local argumentos		= ModuloArgumentos.obtenerValorDeArgumentos

-- Función pública para ser llamada desde la plantilla {{clasificaciónvj}}
function p.clasificacionvj(frame)
	ModuloArgumentos.obtenerTablaDeArgumentos(frame)
	Entidad			= mw.wikibase.getEntity(argumentos{'id'}) or {}
	return p.main()
end

-- Función pública para ser incluída dentro de otros módulos
function p.main()
	
	return (function()
		local Salida = {}
		for k,v in pairs(Datos) do
			table.insert(Salida, evaluar({['etiqueta']=v[1], ['artículo']=v[2], ['valor']=argumentos{v[1], {propiedad, v[3]}}, ['datos']=v[4]}))
		end
		return (function()
			local resultado
			local copia={}
			require('Módulo:Tablas').insertarElementosConValor(Salida, copia)
			if copia[1] then
				return '<div style="display:table">' .. table.concat(copia) .. '</div>'
			end
		end)()
	end)()
end

function evaluar(opciones)
	if not opciones then opciones = {} end
	local Articulo	= opciones['artículo']
	local Etiqueta	= opciones['etiqueta']
	local Valor		= opciones['valor']
	local Datos		= opciones['datos']

	if not Valor or Valor == '' or Valor == nil then return '' end

	return (function()
		local Salida = {}
		table.insert(Salida, '<div style="display:table-row">')
		if Etiqueta then table.insert(Salida, '<div style="display:table-cell;font-weight:bold;padding-right:0.2em">[[' .. Articulo .. '|' .. Etiqueta .. ']]</div>') end
		if Datos[Valor] then
			table.insert(Salida, '<div style="display:table-cell;">[[Archivo:' .. Datos[Valor][1] .. '|' .. Datos[Valor][2] .. '|25x30px|link=]]</div>')
		else
			table.insert(Salida, '<div style="display:table-cell;">' .. Valor .. '</div>')
		end

		table.insert(Salida, '</div>')
		return table.concat(Salida)
	end)()
end

function propiedad(idPropiedad)
	if Entidad and Entidad.claims and Entidad.claims[idPropiedad] then
		return require('Módulo:Tablas').elemento(Entidad, 'claims', idPropiedad, 1, 'mainsnak', 'datavalue', 'value', 'id')
	end
end

return p