Module:Notification
Module utilisé par {{Bonjour}}, {{Bonsoir}}, {{Merci}}.
-- http://lua-users.org/wiki/StringTrim
local function trim( s )
return s:match( '^()%s*$' ) and '' or s:match( '^%s*(.*%S)' )
end
local p = {}
function p.main( frame )
local parentArgs = frame:getParent().args
local intro
if frame.args.intro and frame.args.intro ~= '' then
intro = frame.args.intro
end
-- utilisé par Modèle:Mention
local prefixe = frame.args.prefixe or ''
local indexMax = 50
local depasseMax = false
local items = {}
for i, v in ipairs( parentArgs ) do
if i <= indexMax then
local username = trim( v )
if username ~= '' then
local texte = username
if parentArgs[ 'texte' .. i ] and parentArgs[ 'texte' .. i ] ~= '' then
texte = parentArgs[ 'texte' .. i ]
end
local item = prefixe .. '[[Utilisateur:' .. username .. '|' .. texte .. ']]'
if intro and #items == 0 then
items[ 1 ] = '<span class="nowrap">' .. intro .. item .. '</span>'
else
if texte:find( ' ', nil, true ) or texte:find( '-', nil, true ) then
item = '<span class="nowrap">' .. item .. '</span>'
end
items[ #items + 1 ] = item
end
end
else
depasseMax = true
end
end
if #items == 0 then
return '<span class="error">vous devez spécifier au moins un utilisateur</span>'
end
local result = mw.text.listToText( items )
if depasseMax then
result = result .. '<span class="error">trop d\'utilisateurs : maximum ' .. indexMax .. '</span>'
end
return result
end
return p