Module:Synced switch

From RuneRealm Wiki

This is the current revision of this page, as edited by Eq (talk | contribs) at 13:59, 12 October 2024 (Created page with "local p = {} local hc = require('Module:Paramtest').has_content p._sortFunc = function(a,b) return a.id < b.id end p.main = function(frame) local args = frame:getParent().args local parsed = { {id=0, content=args.default or '', showing = true} } for k,v in pairs(args) do local s = tostring(k):match('version(%d+)') if hc(v) and s then local obj = {id=tonumber(s), text=args['text'..s], content=v} if obj.id == 1 then obj.showing = true parsed[1].sh..."). The present address (URL) is a permanent link to this version.

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Module documentation
This documentation is transcluded from Template:No documentation/doc. [edit] [history] [purge]
This module does not have any documentation. Please consider adding documentation at Module:Synced switch/doc. [edit]
Module:Synced switch's function main is invoked by Template:Synced switch.
Module:Synced switch requires Module:Paramtest.

local p = {}
local hc = require('Module:Paramtest').has_content

p._sortFunc = function(a,b)
	return a.id < b.id
end

p.main = function(frame)
	local args = frame:getParent().args
	local parsed = { {id=0, content=args.default or '', showing = true} }
	
	for k,v in pairs(args) do
		local s = tostring(k):match('version(%d+)')
		if hc(v) and s then
			local obj = {id=tonumber(s), text=args['text'..s], content=v}
			if obj.id == 1 then
				obj.showing = true
				parsed[1].showing = false
			end
			table.insert(parsed, obj)
		end
	end
	table.sort(parsed, p._sortFunc)
	
	return p._main(parsed)
end

p._main = function(args)
	local outer_div = mw.html.create('div')
	outer_div:addClass('rsw-synced-switch')
	for i,v in ipairs(args) do
		local inner_div = outer_div:tag('div')
		inner_div	:addClass('rsw-synced-switch-item')
					:attr({
						['data-item'] = v.id,
						['data-item-text'] = v.text
					})
					:wikitext(v.content)
		if v.showing then
			inner_div:addClass('showing')
		end
	end
	return outer_div
end

return p