Modul:Wikiproject
Aspect

local getArgs = require('Modul:Arguments').getArgs
local p = {}
local classes = {
['a'] = {
['background'] = '#66ffff',
['image'] = 'Symbol a class.svg',
['classname'] = 'A',
['classcat'] = 'Articole de clasa „A”',
['specificcat'] = 'Articole de clasa „A” ale proiectului $1'
},
['ab'] = {
['background'] = '#66ff66',
['image'] = 'Symbol support vote.svg',
['classname'] = 'AB',
['classcat'] = 'Articole bune (clasament)',
['specificcat'] = 'Articole bune ale proiectului $1'
},
['ac'] = {
['background'] = '#6699ff',
['image'] = 'LinkFA-star.png',
['classname'] = 'AC',
['classcat'] = 'Articole de calitate (clasament)',
['specificcat'] = 'Articole de calitate ale proiectului $1'
},
['b'] = {
['background'] = '#c2ff66',
['classname'] = 'B',
['classcat'] = 'Articole de clasa „B”',
['specificcat'] = 'Articole de clasa „B” ale proiectului $1'
},
['c'] = {
['background'] = '#ffff66',
['classname'] = 'C',
['classcat'] = 'Articole de clasa „C”',
['specificcat'] = 'Articole de clasa „C” ale proiectului $1'
},
['ciot'] = {
['background'] = '#ff6666',
['classname'] = 'Ciot',
['classcat'] = 'Cioturi (clasament)',
['specificcat'] = 'Articole de clasa „ciot” ale proiectului $1'
},
['format'] = {
['background'] = '#fbceb1',
['classname'] = 'Format',
['classcat'] = 'Articole de clasa „format”',
['specificcat'] = 'Articole de clasa „format” ale proiectului $1'
},
['început'] = {
['background'] = '#ffaa66',
['classname'] = 'Început',
['classcat'] = 'Articole de clasa „început”',
['specificcat'] = 'Articole de clasa „început” ale proiectului $1'
},
['lc'] = {
['background'] = '#aa88ff',
['classname'] = 'LC',
['image'] = 'Vista-keditbookmarks.png',
['classcat'] = 'Liste de calitate (clasament)',
['specificcat'] = 'Articole de clasa „listă” ale proiectului $1'
},
['listă'] = {
['background'] = '#aa88ff',
['classname'] = 'Listă',
['clascat'] = 'Articole de clasa „listă”',
['specificcat'] = 'Articole de clasa „listă” ale proiectului $1'
},
['portal'] = {
['background'] = '#cc8899',
['classname'] = 'Portal',
['clascat'] = 'Articole de clasa „portal”',
['specificcat'] = 'Articole de clasa „portal” ale proiectului $1'
},
['viitor'] = {
['background'] = '#8a95c9',
['classname'] = 'Viitor',
['clascat'] = 'Viitor (clasament)'
}
}
local importanceClasses = {
['top'] = {
['background'] = '#ff00ff',
['classcat'] = 'Cele mai importante articole',
['classname'] = 'Top',
['specificcat'] = 'Cele mai importante articole ale proiectului $1'
},
['mare'] = {
['background'] = '#ff88ff',
['classcat'] = 'Articole de importanță mare',
['classname'] = 'Mare',
['specificcat'] = 'Articole de importanță mare pentru proiectul $1'
},
['medie'] = {
['background'] = '#ffccff',
['classcat'] = 'Articole de importanță medie',
['classname'] = 'Medie',
['specificcat'] = 'Articole de importanță medie pentru proiectul $1'
},
['mică'] = {
['background'] = '#ffddff',
['classcat'] = 'Articole de importanță mică',
['classname'] = 'tMică',
['specificcat'] = 'Articole de importanță mică pentru proiectul $1'
}
}
local noclass = {
['background'] = 'transparent',
['classname'] = 'Neclasificat'
}
local function clasament(parentElement, class)
local newTag = parentElement:tag('td')
:css('background', class.background)
:css('text-align', 'center')
:wikitext(class.image and ('[[Fișier:' .. class.image .. '|14px]]') or '', class.classname, class.classcat and ('[[Categorie:' .. class.classcat .. '|' .. class.classname .. ']]') or '')
return newTag
end
p.fromArgs = function(project, display, evaluation)
local tableSpan = mw.html.create('span')
tableSpan:attr('lang', 'x-sic')
local mainTable = tableSpan:tag('table')
mainTable:addClass('messagebox')
if display.nested then
mainTable
:addClass('collapsible')
:addClass('collapsed')
:addClass('nested-talk')
elseif display.small then
mainTable:addClass('small-talk')
else
mainTable:addClass('standard-talk')
end
if display.nested then
mainTable
:tag('tr')
:tag('th')
:attr('colspan', '2')
:css('text-align', 'center')
:wikitext('[[' .. project.page .. '|Proiect ' .. project.name .. ']]', evaluation.class and (' (evaluat ca făcând parte din grupa ' .. evaluation.class) or nil)
end
mainTable
:tag('tr')
:tag('td')
:attr('valign', 'center')
:attr('align', 'center')
:wikitext('[[Fișier:' .. project.image .. '|60px]]')
:done()
:tag('td')
:wikitext('Articolul ', "'''" .. mw.title.getCurrentTitle().text .. "'''", " este un subiect de care se ocupă '''''[[" .. project.page .. "|Proiectul" .. project.name .. "]]'''''", project.description)
:newline()
:tag('small')
:wikitext("''Dacă doriți să participați la acest proiect, vă rugăm să vă înscrieți [[' .. project.page .. '/Participanți|aici]].''", '[[Categorie:Articole din domeniul proiectului ' .. project.name .. ']]')
local classData = evaluation.class and classes[mw.ustring.lower(evaluation.class)] or noclass
local qualityRow = mainTable:tag('tr')
clasament(qualityRow, classData)
qualityRow:tag('td')
:wikitext('Acest articol ', evaluation.class and '' or 'încă nu ', 'a fost [[' .. project.page .. '/rezumat|evaluat]]', evaluation.class and (' ca făcând parte din grupa ' .. evaluation.class) or '', ' pe [[' .. project.page .. '/Clasificare|scala de calitate]].')
local importanceData = evaluation.importance and importanceClasses[mw.ustring.lower(evaluation.class)] or noclass
local importanceRow = mainTable:tag('tr')
clasament(importanceRow, importanceData)
importanceRow:tag('td')
:wikitext('Acest articol ', evaluation.class and '' or 'încă nu ', 'a fost [[' .. project.page .. '/rezumat|evaluat]]', evaluation.class and (' ca făcând parte din grupa ' .. evaluation.class) or '', ' pe [[' .. project.page .. '/Clasificare|scala de importanță]].')
local categoriesSpan = mw.html.create('span'):addClass('x-sic')
if evaluation.class and classData.specificcat then
categoriesSpan:wikitext('[[Categorie:' .. mw.ustring.gsub(classData.specificcat, '$1', project.name) .. '|' .. mw.title.getCurrentTitle().text .. ']]')
end
if evaluation.importance and importanceData.specificcat then
categoriesSpan:wikitext('[[Categorie:' .. mw.ustring.gsub(importanceData.specificcat, '$1', project.name) .. '|' .. mw.title.getCurrentTitle().text .. ']]')
end
if not evaluation.class then
categoriesSpan:wikitext('[[Categorie:Articole neclasificate ale proiectului ' .. project.name .. ' (calitate)|' .. mw.title.getCurrentTitle().text .. ']]')
end
if not evaluation.importance then
categoriesSpan:wikitext('[[Categorie:Articole neclasificate ale proiectului ' .. project.name .. ' (importanță)|' .. mw.title.getCurrentTitle().text .. ']]')
end
return tostring(tableSpan) .. tostring(categoriesSpan)
end
p.fromFrame = function(frame)
local args = getArgs(frame)
local project = {}
project.name = args['nume_proiect']
project.page = args['pagina_proiect']
project.image = args['imagine_proiect']
project.description = args['descriere_proiect']
local display = {}
display.nested = args['nested'] == 'yes' or args['nested'] == 'da'
display.small = args['small'] == 'yes' or args['small'] == 'da'
local evaluation = {}
evaluation.class = args['class'] or args['clasament']
evaluation.importance = args['importanță'] or args['importanţă']
return p.fromArgs(project, display, evaluation)
end
return p