Módulo:Bandera

De ProleWiki, la enciclopedia proletaria
Revisión del 02:07 27 sep 2022 de Miguel (discusión | contribs.) (Creación de «Módulo:Bandera»)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)

Funciones

Bandera

Esta función vale para obtener la bandera de una entidad dada o en caso de no existir solo se recuperaría el nombre enlazado o de no existir un artículo solo el nombre. Dispone de una única función bandera. Como parámetro obligatorio hay que aportar el id de la entidad.

Parámetros

{{#invoke:Bandera|bandera|<id entidad>[|<tamaño>|<opciones>|nombre=<nombre de etiqueta>]}}
1

Identificador de la entidad en Wikidata

2

Tamaño de la bandera en px.

3 - Opciones

Si se da el valor solo bandera no aparecerá el nombre.

nombre

nombre que aparecerá como etiqueta.

Ejemplos
  • {{#invoke:Bandera|bandera|Q4018}}Error de Lua en package.lua en la línea 80: module 'Módulo:Wikidata' not found.
  • {{#invoke:Bandera|bandera|Q4018||solo bandera}}Error de Lua en package.lua en la línea 80: module 'Módulo:Wikidata' not found.
  • {{#invoke:Bandera|bandera|Q29|100px|solo bandera}}Error de Lua en package.lua en la línea 80: module 'Módulo:Wikidata' not found.
  • {{#invoke:Bandera|bandera|Q4018|20px|nombre = Comunidad Foral de Navarra}}Error de Lua en package.lua en la línea 80: module 'Módulo:Wikidata' not found.
  • {{#invoke:Bandera|bandera|Q17}}Error de Lua en package.lua en la línea 80: module 'Módulo:Wikidata' not found.
  • {{#invoke:Bandera|bandera|Q1}}Error de Lua en package.lua en la línea 80: module 'Módulo:Wikidata' not found.

sinBandera

La función sinBandera elimina del texto la bandera.

Ejemplo de uso en un módulo LUA
local sinBandera = require('Módulo:Bandera').sinBandera

textoCorregido = sinBandera(texto)

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
 		resultado = resultado:gsub('<span class="flagicon">.-</span>&nbsp;', '')  -- Ejemplo {{ESP}} -->  
 								-- --> {{co|{{{2|España}}}}}<span class="flagicon">[[Archivo:Flag of Spain.svg|border|link=|{{{3|20px}}}]]</span>&nbsp;[[España|{{{1|España}}}]]
 								-- --> {{co|España}}[[España|España]]
 		resultado = resultado:gsub('<span class="flagicon">.-</span>[%s]*', '')
 		resultado = resultado:gsub('%[%[[aA][rR][cC][hH][iI][vV][oO]:.-%]%][%s]*', '')
 		resultado = resultado:gsub('%[%[[fF][iI][lL][eE]:.-%]%][%s]*', '')
 		mw.logObject(resultado)
 		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