Módulo:Bandera
Revisión del 18:07 27 mar 2017 de es>Juan Mayordomo (permitir llamar a las funciones desde una plantilla; eliminar imágnes al usar la función sinBandera)
La documentación para este módulo puede ser creada en Módulo:Bandera/doc
local p = {}
local wikidata = require('Módulo:Wikidata')
function getDeclaraciones(entidad)
local declaraciones = wikidata.getDeclaraciones(entidad)
mw.log(declaraciones)
return declaraciones
end
function getFlags(entidad)
local opciones = {propiedad = 'P41', rangoMayor = 'sí', entityId = entidad}
return wikidata.getPropiedad(opciones)
end
function getName(entidad, nombre)
local opciones = {etiqueta = nombre or 'null'}
local nombre = wikidata.formatoIdEntidad(entidad, opciones)
return nombre
end
function p.banderaLua(entityId, tamanno, opcion, nombre)
local cadenaBandera
local bandera = getFlags(entityId)
if tamanno == nil or tamanno == '' then
tamanno = '20px'
end
local opcion = opcion or ''
local nombre = getName(entityId, nombre)
if bandera and bandera ~= '' then
cadenaBandera = '[[Archivo:'..bandera..'|' .. tamanno .. '| border]]'
end
if opcion == 'solo bandera' and cadenaBandera then
return cadenaBandera -- Solo devolverá la bandera
elseif cadenaBandera then
return cadenaBandera .." " .. nombre -- Devuelve la bandera junto al nombre
else -- No ha valor en la propiedad P41
return nombre -- Solo devuelve el nombre
end
end
function p.bandera(frame)
return p.banderaLua(frame.args[1], frame.args[2],frame.args[3] , frame.args.nombre)
end
-- Función para eliminar las banderas del texto
function p.sinBandera(texto)
local resultado
if texto then
resultado = texto:gsub('<span class="flagicon">.*</span>', '')
resultado = resultado:gsub('%[%[[aA][rR][cC][hH][iI][vV][oO]:.*%]%][%s]*', '')
resultado = resultado:gsub('%[%[[fF][iI][lL][eE]:.*%]%][%s]*', '')
return resultado
end
end
function p.llamadaDesdeUnaPlantilla(frame)
local args = frame.args
local funcion = p[args[1]]
return funcion(args[2], args[3], args[4])
end
return p