Aller au contenu

Module:Notification

Cette page est protégée.
Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 22 novembre 2022 à 15:08 et modifiée en dernier par Od1n (discuter | contributions) (style code, cf. mw:Manual:Coding conventions). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

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

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

-- 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

    -- 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
                items[ #items + 1 ] = prefixe .. '[[Utilisateur:' .. username .. '|' .. texte .. ']]'
            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