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