Naar inhoud springen

Module:Kijkwijzer

Uit Wikipedia, de vrije encyclopedie
Dit is een oude versie van deze pagina, bewerkt door Bdijkstra (overleg | bijdragen) op 4 nov 2024 om 13:35.
Deze versie kan sterk verschillen van de huidige versie van deze pagina.
Moduledocumentatie​[bekijk] [bewerk] [ververs] [geschiedenis]

Voor het weergeven van Kijkwijzer-classificaties via Wikidata (Kijkwijzer-classificatie (P2684)).

Wordt gebruikt door Sjabloon:Infobox film en Sjabloon:Infobox televisieprogramma.

Maakt gebruik van Module:Kijkwijzer/styles.css.

local p = {}

local function icon(infix)
	return '[[File:Kijkwijzer ' .. infix .. '.svg|25px|class=skin-invert-image noviewer]]'
end

local itemId2infix = {
	Q23649980='AL',
	Q23649981='6',
	Q23649982='9',
	Q23649983='12',
	Q83154238='14',
	Q23649984='16',
	Q83154241='18',
	Q98034437='Angst',
	Q98034451='Discriminatie',
	Q98038572='Drugs en-of alcoholmisbruik', -- Roken, alcohol en drugs
	Q98040930='Seks',
	Q98034423='Geweld',
	Q98042270='Grof taalgebruik'
}

-- fetches an array of Kijkwijzer rating claims from Wikidata
-- returns nil if no entity found
-- returns a rating or nil in case different equally-ranked ratings
local function fetchRating(qid)
	local entity = mw.wikibase.getEntity(qid)
	if not entity then
		mw.log('fetchRating: no entity found')
		return nil
	end
	local m = {}
	for _, s in pairs(entity:getBestStatements('P2684')) do
		if s.mainsnak.snaktype == "value" then
			local datavalue = s.mainsnak.datavalue
			if datavalue then
				local ratingId = datavalue.value
				m[ratingId] = true
			end
		end
	end
	mw.log('fetchRating: m=', table.tostring(m))
	local r = nil
	for k,v in pairs(m) do
		if r then		-- table has >1 item
			return nil
		end
		r = itemId2infix[k]
	end
	mw.log('fetchRating: r=', r)
	return r
end

-- returns 'AL', '6', '9', '12', etc.
function p.rating(frame)
	local r = fetchRating()
	if not r then
		r = ''
	end
	return r
end


function p.ratingIcon(frame)
	local r = fetchRating()
	if r then
		r = icon(r)
	else
		r = ''
	end
	return r
end

return p