Modul:PaidContribs
Documentația acestui modul poate fi creată la Modul:PaidContribs/doc
local getArgs = require('Modul:Arguments').getArgs
local TableTools = require('Modul:TableTools')
local join = require('Modul:Separated entries')._main
local p = {}
local crtFrame = mw.getCurrentFrame()
local function yesNo(str)
if not str then return false end
str = mw.ustring.lower(str)
return str == 'yes' or str == 'da' or str == 'd' or str == 'y'
end
p.fromArgs = function(userData, small, checked)
local img = '[[File:Dollar sign in circle cleaned (PD version).svg|40px|alt=|link=]]'
local smallImg = '[[File:Dollar sign in circle cleaned (PD version).svg|30px|alt=|link=]]'
local text = '[[:meta:Terms of use/ro#4._Ab.C5.A3inerea_de_la_anumite_activit.C4.83.C5.A3i|Termenii de utilizare]] ai [[Fundației Wikimedia]] impun ca redactorii să-și dezvăluie „angajatorul, clientul sau afilierea” în raport cu orice contribuție plătită; vedeți [[WP:CdI]].'
if checked then
text = text .. ' Editările efectuate de următorii au fost ultima oară verificate pentru neutralitate la ' .. checked .. '.'
end
for _,eachUser in ipairs(userData) do
local usernames = { crtFrame:expandTemplate{title = 'Ut', args = { eachUser.username } } }
if eachUser.alts then
for _,eachAlt in ipairs(eachUser.alts) do
table.insert(usernames, crtFrame:expandTemplate{title = 'Ut', args = { eachAlt } })
end
end
usernames.separator = ' / '
text = text .. '\n*' .. join(usernames) .. ' a fost plătit(ă) de ' .. (eachUser.employer or '[[Categorie:Contribuții plătite cu angajator nespecificat]]') .. ' ' .. (eachUser.client and ('în numele ' .. eachUser.client) or 'în nume propriu') .. '.'
if yesNo(eachUser.here) then text = text .. ' Editările sale cuprind contribuții la acest articol.' end
if yesNo(eachUser.banned) then text = text .. ' Toate editările sale trebuie anulate pe loc.' end
if eachUser.otherlinks then text = text .. eachUser.otherlinks end
end
text = text .. ' [[Categorie:Pagini de discuție ale articolelor cu contribuții plătite]]'
return crtFrame:expandTemplate{title='Tmbox', args = { ['type'] = 'notice', ['small']=small, ['image'] = img, ['smallimage'] = smallImg, ['text'] = text} }
end
p.fromArray = function(args)
local userData = {}
local usersIndices = TableTools.affixNums(args, 'User')
for _,eachIndex in ipairs(usersIndices) do
local crtUser = {}
crtUser.username = args['User' .. tostring(eachIndex)]
crtUser.employer = args['U' .. tostring(eachIndex) .. '-employer']
crtUser.client = args['U' .. tostring(eachIndex) .. '-client']
crtUser.here = args['U' .. tostring(eachIndex) .. '-EH']
crtUser.banned = args['U' .. tostring(eachIndex) .. '-banned']
crtUser.otherlinks = args['U' .. tostring(eachIndex) .. '-otherlinks']
table.insert(userData, crtUser)
end
if 0 < #userData then
local altIndices = TableTools.affixNums(args, 'alt')
local alts = {}
for _,eachAltIndex in ipairs(altIndices) do
table.insert(alts, args['alt' .. tostring(eachAltIndex)])
end
userData[1].alts = alts
end
return p.fromArgs(userData, args['small'], args['checked'])
end
p.fromFrame = function(frame)
local args = getArgs(frame)
return p.fromArray(args)
end
return p