Zelda Wiki

Want to contribute to this wiki?
Sign up for an account, and get started!

Come join the Zelda Wiki community Discord server!

READ MORE

Zelda Wiki
Register
mNo edit summary
m (Protected "Module:UtilsLayout/Navbox": Critical wiki page ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)))
(2 intermediate revisions by the same user not shown)
(No difference)

Revision as of 18:34, 4 August 2020

Lua error in package.lua at line 80: module 'Module:Tab2' not found.


local p = {}

local tab2 = require("Module:Tab2")
local utilsCode = require("Module:UtilsCode")

local SMALLEST_DESKTOP_SIZE = 600

function p.CreateNavbox(content, title, options)
	local collapsed = options and options.collapsed
	local thick = options and options.thick
	local class = "navbox mw-collapsible"
	if thick then
		class = class .. " navbox-thick"
	end
	if collapsed ~= false then --collapsed is the default unless explicitly set to false.
		class = class .. " mw-collapsed"
	end
	result = mw.html.create("div")
		:addClass(class)
		:node(mw.html.create("div")
			:addClass("navbox-title")
			:wikitext(title))
		:node(mw.html.create("div")
			:addClass("navbox-links mw-collapsible-content")
			:wikitext(content))
	return tostring(result)
end

function p.CreateRowNavbox(rows, title, options)
	local result = mw.html.create("table")
		:addClass("navbox-table")
	for key, row in ipairs(rows) do
		if not utilsCode.IsEmpty(row["content"]) then
			result:node(mw.html.create("tr")
				:node(mw.html.create("th")
					:wikitext(row["title"])
				:node(mw.html.create("td")
					:wikitext(row["content"]))))
		end
	end
	
	return p.CreateNavbox(tostring(result), title, options)
end

function p.CreateTabbedNavbox(title, tabs, options)
	local defaultTab = options and options.defaultTab
	local minTabWidth = options and options.minTabWidth
	local tabsPerRow = options and options.tabsPerRow
	if not tabsPerRow and minTabWidth then
		-- Calculate the number of tabs per row
		local rows = 0
		repeat
			rows = rows + 1
			local rowWidth = (minTabWidth * #tabs) / rows
		until rowWidth <= SMALLEST_DESKTOP_SIZE
		tabsPerRow = math.ceil(#tabs / rows)
	end
	local tabbed = tab2.Main(tabs, defaultTab, "top", tabsPerRow, nil, nil, nil, "center")
	return p.CreateNavbox(tostring(tabbed), title, options)
end
	
return p