Modulis:Album ratings
Moduļa dokumentācija[izveidot]
Iespējams, vēlies izveidot dokumentāciju šim modulim Vari eksperimentēt šī moduļa smilšu kastes (izveidot | spoguļversija) un testu (izveidot) lapā Lūdzu, kategorijas pievieno dokumentācijas apakšlapā. Moduļa apakšlapas. |
local mTableTools = require('Module:TableTools')
local yesno = require('Module:Yesno')
local p = {}
local function makeCell(html, s)
html
:tag('td')
:css('text-align', 'center')
:css('vertical-align', 'middle')
:wikitext(s)
end
local function makeRow(review, score)
local row = mw.html.create('tr')
makeCell(row, review)
makeCell(row, score)
return row
end
local function makeHeaderRow(header, background, scope)
local row = mw.html.create('tr')
row
:tag('th')
:attr('scope', scope ~= false and 'col' or nil)
:attr('colspan', 2)
:css('text-align', 'center')
:css('background', background ~= false and '#d1dbdf' or nil)
:css('font-size', '120%')
:wikitext(header)
return row
end
local function makeRatingHeaderRow()
local row = mw.html.create('tr')
row
:tag('th')
:attr('scope', 'col')
:wikitext('Avots')
:done()
:tag('th')
:attr('scope', 'col')
:wikitext('Rādītājs')
return row
end
function p._main(args)
local reviewNums = mTableTools.affixNums(args, 'rev')
local root = mw.html.create()
local tableRoot = root:tag('table')
local duplicatescores = 0
-- Table base
tableRoot
:addClass('wikitable infobox')
:css('float', args.align or 'right')
:css('width', args.width or '24.2em')
:css('font-size', '80%')
:css('text-align', 'center')
:css('margin', '0.5em 0 0.5em 1em')
:css('padding', 0)
:css('border-spacing', 0)
:tag('tr')
:tag('th')
:attr('scope', 'col')
:attr('colspan', 2)
:css('font-size', '120%')
:wikitext(args.title or 'Profesionālie apskati')
-- Subtitle
if args.subtitle then
tableRoot:node(makeHeaderRow(args.subtitle, false, false))
end
-- Metacritic
if args.MC then
tableRoot:node(makeHeaderRow('Apkopotie rādītāji', true, true))
tableRoot:node(makeRatingHeaderRow())
tableRoot:node(makeRow('[[Metacritic]]', args.MC))
end
-- Review rows
tableRoot:node(makeHeaderRow('Apskatu rādītāji', true, true))
tableRoot:node(makeRatingHeaderRow())
for i, num in ipairs(reviewNums) do
tableRoot:node(makeRow(
args['rev' .. num],
args['rev' .. num .. 'Score'] or
args['Rev' .. num .. 'Score'] or
args['rev' .. num .. 'score'] or
args['Rev' .. num .. 'score']
))
local scorecount = 0
scorecount = scorecount + (args['rev' .. num .. 'Score'] and 1 or 0)
scorecount = scorecount + (args['Rev' .. num .. 'Score'] and 1 or 0)
scorecount = scorecount + (args['rev' .. num .. 'score'] and 1 or 0)
scorecount = scorecount + (args['Rev' .. num .. 'score'] and 1 or 0)
if scorecount > 1 then duplicatescores = duplicatescores + 1 end
end
if duplicatescores > 0 then
root:wikitext('[[Category:Lapas ar albuma vērtējuma veidni un dublējošiem parametriem]]')
end
return tostring(root)
end
function p.main(frame)
local args = require('Module:Arguments').getArgs(frame, {
wrappers = 'Veidne:Albumu vērtējumi'
})
return p._main(args)
end
return p