No edit summary |
m (Reverted edits by Occasional (talk) to last revision by Dounford) Tag: Rollback |
||
| (36 intermediate revisions by 2 users not shown) | |||
| Line 2: | Line 2: | ||
local p = {} | local p = {} | ||
function p.tabs ( | function p.pp(text) | ||
return mw.getCurrentFrame():preprocess(text) | |||
end | |||
function p.tabs (frame) | |||
local args = frame:getParent().args | |||
local id = frame.args[1] | |||
if args["name1"] ~= nil then | |||
return p.tableWithNumber(args) | |||
else | |||
return p.tableWithoutNumber(args) | |||
end | |||
end | |||
function p.tableWithNumber(args) | |||
local tabCount = 0 | |||
local result = "" | |||
local checked = false | |||
if args["infobox"] then | |||
result = '<div class="dTabs" style="float: right;width: calc(var(--pi-width) + calc(var(--pi-width) /10));padding-left: 10px;">' | |||
else | |||
result = '<div class="dTabs">' | |||
end | |||
for _ in pairs(args) do tabCount = tabCount + 1 end | |||
tabCount = math.floor(tabCount / 2) | |||
local name = args["name" .. 1] .. args["name" .. tabCount] | |||
for i = 1, tabCount do | |||
result = result .. '<htmltag tagname="input" type="radio" class="dTabsRadio" name="' .. name .. '" id="' .. args['name' .. i] .. '"' | |||
if not checked then | |||
result = result .. ' checked' | |||
end | |||
result = result .. '></htmltag><htmltag tagname="label" for="' .. args['name' .. i] .. '" class="dTabsLabel">' .. args['name' .. i] .. '</htmltag><div class="dTabsContent dTabsSubcontent">' .. args['tab' .. i] .. '</div>' | |||
checked = true | |||
end | |||
return p.pp(result .. '</div>') | |||
end | |||
function p.tableWithoutNumber(args) | |||
local result = "" | |||
for key, value in pairs(args) do | |||
result = result .. key .. value .. "OOO" | |||
end | |||
return result | |||
end | end | ||
return p | return p | ||
Latest revision as of 22:56, 26 February 2025
Documentation for this module may be created at Module:Tabs/doc
inspect = require("Module:InspectLua")
local p = {}
function p.pp(text)
return mw.getCurrentFrame():preprocess(text)
end
function p.tabs (frame)
local args = frame:getParent().args
local id = frame.args[1]
if args["name1"] ~= nil then
return p.tableWithNumber(args)
else
return p.tableWithoutNumber(args)
end
end
function p.tableWithNumber(args)
local tabCount = 0
local result = ""
local checked = false
if args["infobox"] then
result = '<div class="dTabs" style="float: right;width: calc(var(--pi-width) + calc(var(--pi-width) /10));padding-left: 10px;">'
else
result = '<div class="dTabs">'
end
for _ in pairs(args) do tabCount = tabCount + 1 end
tabCount = math.floor(tabCount / 2)
local name = args["name" .. 1] .. args["name" .. tabCount]
for i = 1, tabCount do
result = result .. '<htmltag tagname="input" type="radio" class="dTabsRadio" name="' .. name .. '" id="' .. args['name' .. i] .. '"'
if not checked then
result = result .. ' checked'
end
result = result .. '></htmltag><htmltag tagname="label" for="' .. args['name' .. i] .. '" class="dTabsLabel">' .. args['name' .. i] .. '</htmltag><div class="dTabsContent dTabsSubcontent">' .. args['tab' .. i] .. '</div>'
checked = true
end
return p.pp(result .. '</div>')
end
function p.tableWithoutNumber(args)
local result = ""
for key, value in pairs(args) do
result = result .. key .. value .. "OOO"
end
return result
end
return p