Module:Kijkwijzer
Uiterlijk
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