模块:勋章

来自SS唯基
Fezz240讨论 | 贡献2022年6月7日 (二) 13:45的版本
跳到导航 跳到搜索
-{}-
    if args['cost' .. awardNum] then
        local cost = infoTable:tag('tr')
        cost
            :tag('th')
            :wikitext('获取条件')
            :done()
            :tag('td')
            :wikitext(args['cost' .. awardNum])
            :done()
    end
-{}-
{{勋章
|file1 = [[file:D级消费勋章-同盟DIVE.gif]]
|name1 = 同盟DIVE
|EXP1 = 30天
|author1 = kzdds123
|description1 = 发帖是不可能发帖的,这辈子不可能发帖的, 做活动又不会做 ,就是潜水这种东西 ,才能维持的了生活这样子
}}


脚本错误:函数“awards”不存在。


-{}-
{{勋章
|file1 = [[File:限制会员勋章.gif]]
|name1 = 限制会员
|author1 = -
|cost1 = -
|EXP1  = 永久
|description1 = 限制在新手村的时候还请好好学习版规噢!
}}


脚本错误:函数“awards”不存在。



-{}-
{{勋章
|file1 = [[File:限制会员勋章.gif]]
|name1 = LV0:战五路线
|price1 = 5[[节操]]
|Purchase1 = 回帖战斗力+100(触发 100%)
|EXP1  = 永久
|Effect1 = -
|upgrade1 =战斗狂人
|requirements1 = 战斗力≥0
|ability1  = 无效果
|description1 = 主要用于新人因连续两月做降低战斗力任务,<br>

导致战斗力低于-250而无法购买大部分勋章的情况时的补救措施。
}}

脚本错误:函数“awards”不存在。




local p = {}

--处理可选择人名
function renderSelect(tabIndices, args)
    local splitCount = tonumber(args['splitCount'])
    local tabs_pages = mw.html.create('div')
        :addClass('tabs_pages')
        :css('display', 'grid')
        :css('margin', '2.5%')
        :css('gap', '4px')
        :css('grid-template-columns', string.rep('1fr ', splitCount))

    for i, tabIndex in ipairs(tabIndices) do
        tabs_pages:tag('div')
            :addClass('tab')
            :css('margin', '0')
            :css('padding', '4px')
            :css('font-weight', '700')
            :wikitext(args['tab' .. tabIndex])
    end

    return tostring(tabs_pages)
end


--处理感言内容
function renderContent(tabIndices, args)
    local tabs_contents = mw.html.create('div')
        :addClass('tabs-contents')

    for i, tabIndex in ipairs(tabIndices) do
        tabs_contents:tag('div')
            :addClass('tab-c')
            :wikitext(args['content' .. tabIndex])
    end

    return tostring(tabs_contents)
end


function p.testimonials(frame)
    local args, tabIndices = {}, {}

    --获取页面传来的参数,而非模板本身的参数
    local parent_args = frame:getParent().args;

    --可自定义每行几人,预设5
    if args['splitCount'] == nil then args['splitCount'] = 5 end

    --将获取的参数传给args
    for k, v in pairs(parent_args) do
        if v ~= 'nil' then args[k] = v end --避免空的参数
    end

    --|tab(x) 的数字可能非123...,可能是012...、037...等
    --用于处理上述情况
    for k, v in pairs(args) do
        local tabIndex = ('' .. k):match('^tab(%d+)$')
        if tabIndex then table.insert(tabIndices, tonumber(tabIndex)) end
    end
    table.sort(tabIndices)

    --处理勋章
    local mainDiv = mw.html.create('div')
        :addClass('tabs-container')
    mainDiv:node(renderSelect(tabIndices, args))
    mainDiv:node(renderContent(tabIndices, args))

    return tostring(mainDiv)
end

return p