Módulo:Clasificación videoxogo

Na Galipedia, a Wikipedia en galego.
Saltar ata a navegación Saltar á procura
Test Template Info-Icon - Version (2).svg Indicacións de uso do módulo

Obxectivo[editar a fonte]

Código para o funcionamento de {{Clasificación videoxogo}}

Esta documentación está transcluída desde Módulo:Clasificación videoxogo/uso. Os editores poden probar cambios no mesmo en Módulo:Clasificación videoxogo/probas.
Por favor, engade as categorías na subpáxina de documentación e os interwikis no Wikidata. Ver as subpáxinas deste módulo.

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.
local algunaPropiedadEnlazaWikidata
local ModuloArgumentos       = require('Módulo:Argumentos')
local ModuloWikidata         = require('Módulo:Wikidata')

local enVariasLineas = require('Módulo:Formato texto').enVariasLineas

-- Constantes

local imagenesPEGI = {
	['3']   = '[[Ficheiro:Newpegi 3.svg|15px]]',
	['4']   = '[[Ficheiro:Newpegi 4+.svg|15px]]',
	['6']   = '[[Ficheiro:Newpegi 6+.svg|15px]]',	
	['7']   = '[[Ficheiro:Newpegi 7.svg|15px]]',
	['12']  = '[[Ficheiro:Newpegi 12.svg|15px]]',
	['16']  = '[[Ficheiro:Newpegi 16.svg|15px]]',		
	['18']  = '[[Ficheiro:Newpegi 18.svg|15px]]',
}

local imagenesESRB = {
	['RP']               = '[[Ficheiro:ESRB 2013 Rating Pending.svg|15px]]',
	['EC']               = '[[Ficheiro:ESRB 2013 Early Childhood.svg|15px]]',
	['E']                = '[[Ficheiro:ESRB 2013 Everyone.svg|15px]]',
	['E10']              = '[[Ficheiro:ESRB 2013 Everyone 10+.svg|15px]]',
	['T']                = '[[Ficheiro:ESRB 2013 Teen.svg|15px]]',
	['M']                = '[[Ficheiro:ESRB 2013 Mature.svg|15px]]',
	['AO']               = '[[Ficheiro:ESRB 2013 Adults Only.svg|15px]]',
}

local imagenesCERO = {
	['SY']                = '[[Ficheiro:CERO Shin Sa Yo Tei.svg|15px]]',
	['RP']                = '[[Ficheiro:CERO Shin Sa Yo Tei.svg|15px]]',
	['KD']                = '[[Ficheiro:CERO Kyouiku Deitabeisu.svg|15px]]',
	['A']                 = '[[Ficheiro:CERO A.svg|15px]]',
	['B']                 = '[[Ficheiro:CERO B.svg|15px]]',
	['C']                 = '[[Ficheiro:CERO C.svg|15px]]',
	['D']                 = '[[Ficheiro:CERO D.svg|15px]]',
	['Z']                 = '[[Ficheiro:CERO Z.svg|15px]]',
	['KT']                = '[[Ficheiro:CERO Kitei Teikikou.svg|15px]]',
}

local imagenesUSK = {
	['RP']               = '[[Ficheiro:USK - Rating pending.svg|15px]]',
	['EA']               = '[[Ficheiro:USK - Rating pending.svg|15px]]',
	['0']                = '[[Ficheiro:Usk white.png|15px]]',
	['6']                = '[[Ficheiro:USK6 neu2.svg|15px]]',
	['12']               = '[[Ficheiro:USK12 neu2.svg|15px]]',
	['16']               = '[[Ficheiro:USK16 neu2.svg|15px]]',
	['18']               = '[[Ficheiro:USK18 neu2.svg|15px]]',
}

local imagenesOFLC = {
	['E']                = '[[Ficheiro:OFLC small E.svg|15px]]',
	['G']                = '[[Ficheiro:Australian OFLC G tag logo.svg|15px]]',
	['PG']               = '[[Ficheiro:PG classification tag from OFLC.svg|15px]]',
	['M']                = '[[Ficheiro:Australian OFLC M logo.svg|15px]]',
	['MA']               = '[[Ficheiro:MA 15+ classification tag from OFLC.svg|15px]]',
	['R']                = '[[Ficheiro:OFLC small R18+.svg|15px]]',
	['X']                = '[[Ficheiro:OFLC X 18 classification tag.svg|15px]]',
}

local imagenesRARS = {
	['0']               = '[[Ficheiro:RARS rating 0+.svg|14px]]',
	['6']               = '[[Ficheiro:RARS rating 6+.svg|14px]]',
	['12']              = '[[Ficheiro:RARS rating 12+.svg|14px]]',
	['16']              = '[[Ficheiro:RARS rating 16+.svg|14px]]',
	['18']              = '[[Ficheiro:RARS rating 18+.svg|14px]]',
}


function z.main(frame)
	ModuloWikidata:setFrame(frame)
	local argumento = ModuloArgumentos.getArgs(frame)
	Entidad         = mw.wikibase.getEntityObject() or {}
	if propiedad('P853') then
	  CERO = ((propiedad('P853', {uno='sí'})) ):sub(1,1)
	else
	  CERO=argumento['CERO']
  end
 
	if propiedad('P914') then
	USK = (propiedad('P914', {uno='sí'})):sub(5,6)
		else
			USK= argumento ['USK']
		end
	ESRB     = argumento ['ESRB']
	OFLC     = argumento ['OFLC']
	RARS      = argumento ['RARS']	

 if propiedad('P908') then
	PEGI = (propiedad('P908', {uno='sí'})):sub(6)
		else
			PEGI=argumento['PEGI']
		end	
		
	return enVariasLineas({
		evaluar('PEGI', PEGI , imagenesPEGI),
		evaluar('ESRB', ESRB, imagenesESRB),
		evaluar('CERO', CERO, imagenesCERO),
		evaluar('Unterhaltungssoftware Selbstkontrolle|USK', USK, imagenesUSK),
		evaluar('OFLC', OFLC, imagenesOFLC),
		evaluar('RARS', RARS, imagenesRARS)
		})
end

function evaluar(literal, valor, imagenes, nota)
	if not valor then
		return
	end
	
	local imagen
	
	if imagenes then
		imagen = imagenes[valor]
	end
	
	if imagen and nota then
		return  '<b>  [[' .. literal .. ']] </b>' .. imagen .. '<small>' .. nota .. '</small>'
	elseif imagen then
		return '<b>  [[' .. literal .. ']] </b>' .. imagen
	else
		return '<b>  [[' .. literal .. ']] </b>' .. valor
	end
end

function propiedad(idPropiedad,opciones)
    if Entidad and Entidad.claims and Entidad.claims[idPropiedad] then
    	if not opciones then
    		opciones = {}
    	end
    	opciones['propiedad'] = idPropiedad

        valorPropiedad = ModuloWikidata.getPropiedad(opciones,Entidad.claims[idPropiedad])

        if valorPropiedad and valorPropiedad:match('%[%[:d:') then
          algunaPropiedadEnlazaWikidata = true
        end

    	return valorPropiedad
    end
end

return z