Aller au contenu

Module:Notification

Cette page est protégée.
Une page de Wikipédia, l'encyclopédie libre.

 Documentation[voir] [modifier] [historique] [purger]

Module utilisé par {{Mention}}, {{Notif}}, {{Notif discret}} et {{Notif invisible}}, ainsi que {{Bonjour}}, {{Bonsoir}}, {{Salut}}, {{Merci}}etc.

local mwTrim = mw.text.trim

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 = mwTrim( 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