Módulo:Clasificación videoxogo

Na Galipedia, a Wikipedia en galego.
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:PEGI 3.svg|15px]]',
	['4']   = '[[Ficheiro:Newpegi 4+.svg|15px]]',
	['6']   = '[[Ficheiro:Newpegi 6+.svg|15px]]',	
	['7']   = '[[Ficheiro:PEGI 7.svg|15px]]',
	['12']  = '[[Ficheiro:PEGI 12.svg|15px]]',
	['16']  = '[[Ficheiro:PEGI 16.svg|15px]]',		
	['18']  = '[[Ficheiro:PEGI 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 0.svg|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 imagenesACB = {
	['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 0+ (2016).svg|14px]]',
	['6']               = '[[Ficheiro:RARS 6+ (2016).svg|14px]]',
	['12']              = '[[Ficheiro:RARS 12+ (2016).svg|14px]]',
	['16']              = '[[Ficheiro:RARS 16+ (2016).svg|14px]]',
	['18']              = '[[Ficheiro:RARS 18+ (2016).svg|14px]]',
}

local imagenesBARS = {
	['L']               = '[[Ficheiro:DJCTQ - L.svg|14px]]',
	['10']               = '[[Ficheiro:DJCTQ - 10.svg|14px]]',
	['12']              = '[[Ficheiro:DJCTQ - 12.svg|14px]]',
	['14']              = '[[Ficheiro:DJCTQ - 14.svg|14px]]',
	['16']              = '[[Ficheiro:DJCTQ - 16.svg|14px]]',
	['18']              = '[[Ficheiro:DJCTQ - 18.svg|14px]]'
}

local imagenesGRAC = {
	['T']               = '[[Ficheiro:GRAC Test (시험용).svg|14px]]',
	['All']               = '[[Ficheiro:GRAC All (전체이용가).svg|14px]]',
	['12']              = '[[Ficheiro:GRAC 12 (12세이용가).svg|14px]]',
	['15']              = '[[Ficheiro:GRAC 15 (15세이용가).svg|14px]]',
	['18']              = '[[Ficheiro:GRAC 18 (18청소년이용불가).svg|14px]]',
	['19']              = '[[Ficheiro:GRAC 19 (19청소년이용불가).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']
    BARS      = argumento ['BARS']
    GRAC      = argumento ['GRAC']

 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),
		evaluar('BARS', BARS, imagenesBARS),
		evaluar('GRAC', GRAC, imagenesGRAC)
		})
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