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
No edit summary
m (Protected "Module:UtilsLayout/Navbox": Critical wiki page ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)))
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
local p = {}
 
local p = {}
   
  +
local tab2 = require("Module:Tab2")
function p.CreateNavbox(content, title)
 
  +
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")
 
result = mw.html.create("div")
:addClass("navbox mw-collapsible mw-collapsed")
+
:addClass(class)
 
:node(mw.html.create("div")
 
:node(mw.html.create("div")
 
:addClass("navbox-title")
 
:addClass("navbox-title")
Line 13: Line 27:
 
end
 
end
   
function p.CreateRowNavbox(rows, title)
+
function p.CreateRowNavbox(rows, title, options)
 
local result = mw.html.create("table")
 
local result = mw.html.create("table")
 
:addClass("navbox-table")
 
:addClass("navbox-table")
 
for key, row in ipairs(rows) do
 
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")
+
result:node(mw.html.create("tr")
:wikitext(row["title"])
+
:node(mw.html.create("th")
:node(mw.html.create("td")
+
:wikitext(row["title"])
:wikitext(row["content"]))))
+
:node(mw.html.create("td")
  +
:wikitext(row["content"]))))
  +
end
 
end
 
end
 
 
return p.CreateNavbox(tostring(result), title)
+
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
 
end
 
 

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