请登录
玩家共建非官方战双WIKI,做最还原游戏内UI体验的WIKI!
战双WIKI反馈留言板 · WIKI编辑教程 · BWIKI收藏到桌面的方法说明
模块:Tab
使用方式
新建一个模板页面,名称随意(比如模板:选项卡
),然后在其中填入以下内容:
<includeonly>{{#if:{{#var:tabjs_loaded}}||{{#vardefine:tabjs_loaded|1}}{{#widget:TabJS}}}}{{#invoke:Tab|tab}}</includeonly><noinclude><!--这里填写模板说明--></noinclude>
然后使用这个模板进行页面展示,按照选项标题-选项内容的顺序成对传入参数,其中选项标题不支持wikitext解析,选项内容支持解析。默认激活第一个选项。效果如下:
{{选项卡 |选项1 |选项1 的内容 |选项2 |'''选项2 的内容''' }}
- 选项1
- 选项2
如果需要添加折叠所有选项的功能,可以在参数表的最前或最后传入折叠参数,任意取值均可。此时在选项卡最前端会加入一个折叠按钮并默认激活,效果如下:
{{选项卡 |折叠=1 |选项1 |选项1 的内容 |选项2 |'''选项2 的内容''' }}
- [折叠]
- 选项3
- 选项4
local p = {}
function p.tab(frame)
-- local args = (frame == mw.getCurrentFrame() and frame.args) or frame
if frame ~= mw.getCurrentFrame() then
-- 调试用
args = frame
frame = mw.getCurrentFrame()
else if frame:getParent() ~= nil then
args = frame:getParent().args
else
args = frame.args
end
end
--mw.log(table.concat(args,"\n"))
local index = 1
local tabIndex = 1
local tabName = {}
local tabContent = {}
local tabId = {}
local fold = false
if args["折叠"] ~= nil then
fold = true
tabName[tabIndex] = "[折叠]"
tabContent[tabIndex] = ""
tabIndex = tabIndex + 1
end
while args[index] ~= nil do
tabName[tabIndex] = frame:preprocess(args[index])
tabContent[tabIndex] = frame:preprocess(args[index+1])
tabIndex = tabIndex + 1
index = index + 2
end
local result = {}
table.insert(result, [[<div style="display:none">]])
for i = 1, index-1 do
if args[i] ~= nil then
table.insert(result, args[i]..[[<br>]])
else
table.insert(result, [[args(]]..i..[[)is nil<br>]])
end
end
table.insert(result, [[</div>]])
if tabIndex == 2 and fold or tabIndex == 1 then
return 'Error: No tab parsed.'
end
table.insert(result, [[<div class="TabContainer"><ul>]].."\n")
table.insert(result, [[<li class="tab_li active">]]..tabName[1]..[[</li>]].."\n")
for i = 2, tabIndex-1 do
table.insert(result, [[<li class="tab_li">]]..tabName[i]..[[</li>]].."\n")
end
table.insert(result, [[</ul>]].."\n")
table.insert(result, [[<div class="tab_con active">]]..tabContent[1]..[[</div>]].."\n")
for i = 2, tabIndex-1 do
table.insert(result, [[<div class="tab_con">]]..tabContent[i]..[[</div>]].."\n")
end
table.insert(result, [[</div>]].."\n")
--mw.log(table.concat(result))
return table.concat(result)
end
-- function genId()
-- -- return 'tab-' .. os.clock() * 1e9
-- local seed={'e','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'}
-- local tb={}
-- for i=1,12 do
-- table.insert(tb,seed[math.random(1,16)])
-- end
-- local sid=table.concat(tb)
-- return string.format('tab-%s-%s-%s',
-- os.clock() * 1e5,
-- string.sub(sid,1,6),
-- string.sub(sid,7,12)
-- )
-- end
return p