打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

Module:专题导航

来自OGAS数据中枢

此模块的文档可以在Module:专题导航/doc创建

local p = {}
local getArgs = require('Module:Arguments').getArgs

-- 数字到英文单词的映射
local numberMap = {
    ["1"] = "one",
    ["2"] = "two",
    ["3"] = "three",
    ["4"] = "four",
    ["5"] = "five",
    ["6"] = "six",
    ["7"] = "seven",
    ["8"] = "eight",
    ["9"] = "nine",
    ["10"] = "ten",
    ["11"] = "eleven",
    ["12"] = "twelve"
}

-- 主函数
function p.main(frame)
    local args = getArgs(frame)
    
    local numberofbuttons = args['numberofbuttons'] or ""
    local divs = numberMap[tostring(numberofbuttons)] or ""
    
    -- 如果没有提供有效的按钮数量
    if divs == "" then
        return "请输入项目数量N个(参数<span style=\"color:red;\">numberofbuttons</span>),N不能大于12。"
    end
    
    -- 检查是否需要添加ID
    if not args['uniqueID'] then
        return frame:expandTemplate{title = 'Template:Tc', args = {'需要添加id的专题导航模板'}}
    end
    
    -- 构建HTML内容
    local html = '<div class="ztdh" id="' .. (args['uniqueID'] or "") .. '">'
    html = html .. '<div class="row">'
    html = html .. '<div class="' .. (args['wl'] or "five columns") .. '">' .. (args['LOGO'] or "") .. '<span class="ztdh-title">' .. (args['欢迎标语'] or "") .. '</span></div>'
    html = html .. '<div class="' .. (args['hl'] or "seven columns hint") .. '">' .. (args['提示内容'] or "") .. '</div>'
    html = html .. '</div>'
    html = html .. '<div class="ztdhclear"></div>'
    html = html .. '<div class="ztdh-hsctrl">[ 显示全部 ]</div>'
    html = html .. '<hr /><div class="row ztdhmenu">'
    
    -- 处理标题和栏目
    local titleIndex = 1
    while args['标题' .. titleIndex] do
        local title = args['标题' .. titleIndex]
        local column = args['栏目' .. titleIndex] or ""
        
        html = html .. '<div class="' .. divs .. ' divs menu-item">'
        html = html .. '<span class="menu-title">' .. title .. '</span>'
        html = html .. '<div class="menu-content">'
        html = html .. '<div class="menu-popout">\n<nowiki/>\n' .. column .. '</div>'
        html = html .. '</div></div>'
        
        titleIndex = titleIndex + 1
    end
    
    html = html .. '</div>'
    html = html .. '<div class="ztdhclear"></div>'
    html = html .. '</div>'
    
    return frame:preprocess(html)
end

return p