ФЭНДОМ


local Quotes = {}
local getArgs = require('Dev:Arguments').getArgs
 
function Quotes.Main(frame)
    local args = getArgs(frame)
 
    -- умляуты для Виги
    if args["Вигфрид"] then
        local Umlauts = { {"O", "Ö"}, {"o", "ö"}, {"О", "Ö"}, {"о", "ö"} }
        for i, Umlaut in ipairs(Umlauts) do
            args["Вигфрид"] = mw.ustring.gsub( args["Вигфрид"], Umlaut[1], Umlaut[2])
        end
    end
 
    local characterlist = mw.text.split(args["characterlist"] or "", "[,%s]+")
 
    -- подсчитываем число переданных персонажей
    local seed = 0
    local charlist = {}
    for i, chara in ipairs(characterlist) do
        if args[chara] or args["example"] then
            table.insert(charlist, chara)
            seed = seed + mw.ustring.len(args[chara] or "")
        end
    end
    local charnum = #charlist
    if charnum == 0 then return "" end
 
    -- рандомизация
    math.randomseed( os.time() + seed)
    local default = math.random(charnum)
 
    -- заполяем параметры и дергаем шаблон таба
    local result = ""
    for i, chara in ipairs(charlist) do
        local parameters = {}
        table.insert(parameters, args[chara] or "")
        table.insert(parameters, chara)
        table.insert(parameters, i-1)
        table.insert(parameters, (args[chara .. " причина"] or "") .. (args["Причина"] or ""))
        --table.insert(parameters, (args["Стандарт"] or "Уилсон") == chara and "default" or "" )
        table.insert(parameters, (default == i) and "default" or "" )
        table.insert(parameters, "[[" .. chara .. "]]")         
 
        if args["example"] then --примеры
            parameters[1] = "То, что " .. chara .. " говорит"
            parameters[4] = "по причине"
        end            
 
        result = result .. frame:expandTemplate{title = 'Цитаты/Tab', args = parameters}
    end    
 
    -- оборачиваем результат в оболочку
    result = '<div style="min-width:320px;position:relative;padding-top:' .. ( (charnum > 10) and 60 or 25 ) .. 'px;" class="DSWHoverTabContainer">' .. result .. '</div>'
    return result
end
 
return Quotes
Материалы сообщества доступны в соответствии с условиями лицензии CC-BY-SA , если не указано иное.