Módulo:Ficha/Wikidata
Este módulo no tiene página de documentación[crear]
local p = {}
local Wikidata = require('Módulo:Wikidata')
local Formatos = require('Módulo:Formatos')
local es = mw.language.new('es')
local marco
function p:setFrame(frame)
marco = frame
Wikidata:setFrame(marco)
end
function p.getEtiqueta()
local elemento = mw.wikibase.getEntityObject() or {}
return es:ucfirst(mw.wikibase.label(elemento.id) or '')
end
function p.getDeclaraciones()
return Wikidata.getDeclaraciones()
end
function p.getDeclaracion(declaracion, propiedad, separador, modulo, funcion, calificador, enlace, cortar, propiedadValor)
local propUnValor = {'P41','P18','P94','P242','P6','P1082','P163','P237','P625'} -- Propiedades que solo deben tener un valor
local unValor = 'no'
local rangoMayor = 'sí'
local entidad = mw.wikibase.getEntityIdForCurrentPage()
for k,v in pairs(propUnValor) do -- Se comprueba si coincide propiedad
if propiedad == v then
unValor = 'sí'
rangoMayor = 'no'
end
end
opciones = {
['propiedad'] = propiedad,
['valor'] = nil, -- Valor que sustituiría al valor de Wikidata de darse
['separador'] = separador,
['valor-módulo'] = modulo,
['valor-función'] = funcion,
['legend'] = nil, -- Pie de imagen en caso de usarse el módulo Wikidata/Formatos y la función formatImage
['conjunción'] = separador,
['calificador'] = calificador,
['dato'] = nil, -- Si el valor sería 'fuente' devolvería la fuente de la declaración
['uno'] = unValor,
['formatoTexto'] = 'mayúscula',
['rangoMayor'] = rangoMayor, -- devolverá solo los valores de mayor rango
['enlace'] = enlace,
['tipo'] = 'city',
['display'] = 'inline,title',
['formato'] = 'dms',
['propiedadValor'] = propiedadValor,
['entityId'] = entidad,
['cortar'] = cortar -- Valor que de coincidir se cortaría en la cadena cuando se usa el módulo Wikidata/Formatos y la función formatBandera es util para cortar provincia de si se da la etiqueta provincia
}
local valorFormateado = Wikidata.getPropiedad(opciones,tabla)
if valorFormateado == nil then return "" end
if type(valorFormateado) == 'number' and enlace ~= 'no' then
valorFormateado = es:formatNum(tonumber(valorFormateado))
end
return valorFormateado
end
return p