Abrir menú principal

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)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)

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