Ir al contenido

Módulo:Ficha de liga deportiva

De Wikipedia, la enciclopedia libre

Uso


local z = {}

local argumentos    -- Tabla de argumentos con los que se llama a la función 
local argumento={}  -- Argumentos eliminando los argumentos sin datos
local Entidad       -- Tabla con los datos en Wikidata del libro.

-- Módulos utilizados
local ModuloArgumentos       = require('Módulo:Argumentos')
local ModuloFicha            = require('Módulo:Ficha')	
local ModuloPaginas          = require('Módulo:Páginas')
local ModuloWikidata         = require('Module:Wikidata')

function z.Ficha(frame)
--  Hacer que funcione la función formatBandera	
    ModuloWikidata:setFrame(frame)  -- No funciona si se pone ModuloWikidata.setFrame(marco)    
    
    -- Obtener una copia de los argumentos eliminando los argumentos sin valor
    local argumento = ModuloArgumentos.obtenerArgumentosConValor(frame)
    
    -- Obtener los datos de la página donde se inserta la ficha de Wikidata.
    Entidad = mw.wikibase.getEntityObject() or {}

    deporte         = enlazar(argumento['deporte'] or propiedad('P641')) or ''
    temporadaActual = argumento['temporada actual'] or argumento['temporada']

    if temporadaActual then
       temporada = frame:preprocess('{{icono de evento deportivo|' .. deporte ..'|40px}}') .. 
           temporadaActual
    end
    
    local FichaLibro = {
        titulo          = argumento['título'] or 
                          argumento['titulo'] or 
                          ModuloPaginas.nombrePagina({desambiguar='sí'}) ,

        tipocabecera    = frame:preprocess('{{Ficha de deporte/cabecera|'.. deporte .. '}}'),
        clasetitulo     = 'deporte',
        estilotitulo    = 'background-color:'.. (argumento.color or '#CDC') .. ';color:' .. (argumento['color texto'] or 'black'),
        subtitulo       = temporada,
        estilosubtitulo = 'background-color:#dddddd;color:black',
        estiloseccion   = 'background-color:'.. (argumento.color or '#CDC') .. ';color:' .. (argumento['color texto'] or 'black'),
        --estiloetiqueta  = 'font-size: 92%; width:35%',
        --estilodatos     = 'font-size: 92%; width:65%',
        
        imagen          = argumento['imagen']       or argumento['logo']        or propiedad('P18', {uno='sí'}),
        ['tamañoimagen']= argumento['tamañoimagen'] or argumento['tamaño']      or argumento['pixels'] or '200px',
        pie             = argumento['pie']          or argumento['descripción'] or argumento['caption'],
        estilopie       = 'font-size:88%',
        
        {tipo='sección',
            titulo='Datos generales',
            {'Deporte'            , deporte},
            {'Sede'               , argumento['país']},
            {'Clasificados para competir'  , argumento['clasificados']},
            {'Nivel de competencia'  , argumento['fama']},
            {'Federación'         , argumento['federación']},
            {'Confederación'      , argumento['confederación']},
            {'Continente'         , argumento['continente']},
            {'Nombre oficial'     , argumento['nombre oficial']},
            {'Nombre comercial'   , argumento['nombre comercial']},
            {'Nombre de fantasía' , argumento['nombre de fantasía']},
            {'Lema'               , argumento['lema']},
            {'Organizador'        , argumento['organizador']},
            {'Director ejecutivo' , argumento['director ejecutivo'] or argumento['gerente']},
            {'Presidente'         , argumento['presidente']},
            {'Vicepresidente'     , argumento['vicepresidente']},
            {'Grupos'             , argumento['grupos']},
            {'Equipos participantes', argumento['equipos']}, --Número de equipos
            {'Divisiones'           , argumento['divisiones']},
            {'Conferencias'         , argumento['conferencias']},
        },     
        {tipo='sección',
        	titulo='Datos históricos',
            {'Fundación'          , argumento['fundación']},
            {'Equipos fundacionales' , argumento['principio']},
            {'Primera temporada'  , argumento['primera temporada'] or 
            	                    argumento['inaugural'] or 
            	                    argumento['primera edicion'] or
            	                    argumento['temporada inaugural']},
            {'Primer campeón'     , argumento['primer campeón']},
            {'Desaparición'       , argumento['desaparición'] or argumento['difunta']},
            {'Última temporada'   , argumento['última temporada']},
            {'Goleador histórico' , argumento['goleador']},
            {'Más presencias'     , argumento['presencias'] or argumento['más presencias']}
        },
        {tipo='sección',
        	titulo='Datos estadísticos',
            {(argumento['difunta'] and 'Último campeón') or 'Campeón actual', argumento['campeón'] or argumento['campeón actual']},
            {(argumento['difunta'] and 'Último subcampeón') or 'Subcampeón actual', argumento['subcampeón'] or argumento['subcampeón actual']},
            {(argumento['difunta'] and 'Último tercero') or 'Tercero actual', argumento['tercero'] or argumento['tercero actual']},
            {'Más campeonatos'     , argumento['más campeonatos'] or argumento['mas campeonatos']},
            {'Más participaciones' , argumento['más participaciones']},
            {'Más finales'         , argumento['más finales']}
        },
        {tipo='sección',
            titulo='Datos de competencia',
            {'Categoría'      , argumento['piramide'] or argumento['nivel']},
            {'[[Archivo:Green Arrow Up.svg|10px]] Ascenso a'      , argumento['ascenso'] or argumento['asciende']},
            {'[[Archivo:Red Arrow Down.svg|10px]] Descenso a'     , argumento['descenso']},
            {'Clasificación a', argumento['clasifica']},            	
        	{'Copa nacional'  , argumento['copa'] or argumento['copa nacional']},
        	{'Copa internacional', argumento['copa internacional']}        		
        },
        {tipo='sección',
        	titulo='Otros datos',        	
            {'Patrocinador', argumento['sponsor']},        	
            {'Socio de TV' , argumento['TV'] or argumento['socio tv'] or argumento['tv']},
            {'Sitio web oficial', argumento['web'] or argumento['sitio web']}
        },
        
        {tipo='sección',
        	titulo                = 'Cronología',
        	{tipo = 'sucesión',
        	    anterior          = argumento['anterior'],
        	    ['año anterior']  = argumento['año anterior'],
        	    actual            = argumento['actual'], -- Si no está informado se toma el título de la ficha
        	    siguiente         = argumento['siguiente'],
        	    ['año siguiente'] = argumento['año siguiente'],        	    
                color             = argumento.color or '#CDC'
            }
        }
        
        --piedetabla       = enlaceExterno(argumento['web'], 'Sitio web oficial'),
        --estilopiedetabla = 'background-color:#CDC;'
    }

    return ModuloFicha.infobox(FichaLibro)
end

-- Función que devuelve la lista de los valores de una propiedad en Wikidata formateados
function propiedad(idPropiedad,opciones)
    if Entidad and Entidad.claims and Entidad.claims[idPropiedad] then
    	if not opciones then
    		opciones = {}
    	end
    	opciones['propiedad'] = idPropiedad
    	return ModuloWikidata.getPropiedad(opciones,Entidad.claims[idPropiedad])
    end
end

function enlazar(pagina, texto)
	if pagina and texto then
		return '[[' .. pagina .. '|' .. texto .. ']]'
	elseif pagina then
		if pagina:find('%[') then
		    return pagina
		else
		    return '[[' .. pagina .. ']]'			
		end
	end
end

function enlaceExterno(pagina, texto)
	if not pagina then
		return
	end
	
	if texto then
		--FALTA si ya está enlazado
		    return '[' .. pagina .. texto .. ']'
	else
		--FALTA si ya está enlazado
		return '[' .. pagina .. ']'
	end
end

return z