Ir al contenido

Módulo:Ficha/Wikidata

De Wikipedia, la enciclopedia libre
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