Module:Mailing list member
Revision as of 23:13, 23 February 2014 by blackwiki>Jackmcbarn (link to contribs for users)
Template:Template for discussion/dated Implements {{Mailing list member}}
local yesno = require('Module:Yesno')
local p = {}
local function maybeLink(text, target)
return target and ('[[' .. target .. '|' .. text .. ']]') or text
end
function p.main(frame)
local pargs = frame:getParent().args
local args = frame.args
local lang = mw.getContentLanguage()
local page
if pargs.user then
page = 'User talk:' .. pargs.user
else
page = pargs.page
end
if yesno(pargs.blocked) then
if pargs.user then
return frame:expandTemplate{title = 'Userblocked', args = { pargs.user }} .. ' <span class="blocked-member" style="font-size: 0.95em; font-weight: bold; color: #E33;">(Blocked since: ' .. lang:formatDate('F Y', pargs.blocked) .. ')</span>'
else
return '<span class="error">No user defined</span>'
end
end
if not page then
return '<span class="error">No user or page defined</span>'
end
if yesno(pargs.inactive, true) then
local inactiveTS = tonumber(lang:formatDate('U', pargs.inactive))
local minInactive = os.time() - 31556952
local notargetInactive = minInactive
local maxInactive = minInactive - 31556952
if args.minInactive then
minInactive = tonumber(lang:formatDate('U', args.minInactive))
end
if args.notargetInactive then
notargetInactive = tonumber(lang:formatDate('U', args.notargetInactive))
end
if args.maxInactive then
maxInactive = tonumber(lang:formatDate('U', args.maxInactive))
end
local retval
if inactiveTS < notargetInactive then
if pargs.user then
retval = frame:expandTemplate{title = 'User', args = { pargs.user }}
else
retval = '[[' .. page .. ']]'
end
else
retval = frame:callParserFunction('#target', page)
end
retval = retval .. ' <span class="inactive-member" style="font-size: 0.95em; font-weight: bold; color: #'
if inactiveTS < maxInactive then
retval = retval .. 'F00';
elseif inactiveTS < minInactive then
retval = retval .. '555';
else
retval = retval .. '080';
end
retval = retval .. ';">(Inactive since: ' .. maybeLink(lang:formatDate('F Y', pargs.inactive), pargs.user and ('Special:Contributions/' .. pargs.user)) .. ')</span>'
return retval
else
return frame:callParserFunction('#target', page)
end
end
return p