Module:Notification

From Wikidata
Jump to navigation Jump to search
Lua
CodeDiscussionLinksLink count SubpagesDocumentationTestsResultsSandboxLive code All modules

Documentation for this module may be created at Module:Notification/doc

Code

local p = {}

function p.main( frame )
    local parentArgs = frame:getParent().args
    local trimFunc = mw.text.trim -- global access cache

    local prefixe = frame.args.prefixe or ''

    local indexMax = 50
    local exceedsMax = false

    local items = {}

    for i, v in ipairs( parentArgs ) do
        if i <= indexMax then
            local username = trimFunc( v )
            if username ~= '' then
                local text = username
                if parentArgs['text' .. i] and parentArgs['text' .. i] ~= '' then
                    text = parentArgs['text' .. i]
                end
                items[#items + 1] = prefixe .. '[[User:' .. username .. '|' .. text .. ']]'
            end
        else
            exceedsMax = true
        end
    end

    if #items == 0 then
        return '<span class="error">you must specify at least one user</span>'
    end

    local result = mw.text.listToText( items )

    if exceedsMax then
        result = result .. '<span class="error">too many users : maximum ' .. indexMax .. '</span>'
    end

    return result
end

return p