Jump to content

Module:Navbox with collapsible groups: Difference between revisions

m
(testing)
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
-- This module implements {{Navbox with collapsible groups}}
-- This module implements {{Navbox with collapsible groups}}
require('Module:No globals')
local q = {}
local q = {}
local Navbox = require('Module:Navbox')
local Navbox = require('Module:Navbox')
local getArgs -- lazily initialized


-- helper functions
-- helper functions
Line 23: Line 20:


function q._navbox(pargs)
function q._navbox(pargs)
local tracking = ''
-- table for args passed to navbox
-- table for args passed to navbox
local targs = {}
local targs = {}
Line 48: Line 43:
if (targs['list' .. n] == nil and pargs['group' .. n] == nil
if (targs['list' .. n] == nil and pargs['group' .. n] == nil
and pargs['sect' .. n] == nil and pargs['section' .. n] == nil) then
and pargs['sect' .. n] == nil and pargs['section' .. n] == nil) then
targs['list' .. n] = concatstrings(pargs['list' .. n] or '', pargs['content' .. n] or '')
targs['list' .. n] = concatstrings(
{pargs['list' .. n] or '', pargs['content' .. n] or ''})
end
end
elseif (k:match('^group[0-9][0-9]*$')  
elseif (k:match('^group[0-9][0-9]*$')  
Line 72: Line 68:
local state = (pargs['abbr' .. n] and pargs['abbr' .. n] == pargs['selected'])  
local state = (pargs['abbr' .. n] and pargs['abbr' .. n] == pargs['selected'])  
and 'uncollapsed' or pargs['state' .. n] or 'collapsed'
and 'uncollapsed' or pargs['state' .. n] or 'collapsed'
local sargs = {'child', navbar = 'plain', state = state,
targs['list' .. n] = Navbox._navbox(
{'child', navbar = 'plain', state = state,
basestyle = pargs['basestyle'],
basestyle = pargs['basestyle'],
title = title, titlestyle = titlestyle,
title = title, titlestyle = titlestyle,
Line 79: Line 77:
image = pargs['image' .. n],
image = pargs['image' .. n],
imageleft = pargs['imageleft' .. n],
imageleft = pargs['imageleft' .. n],
listpadding = pargs['listpadding']}
listpadding = pargs['listpadding']})
targs['list' .. n] = Navbox._navbox(sargs)
tracking = tracking .. '<hr /><center><b>k = ' .. k .. ', n = ' .. n .. '</b></center><hr />\n'
for ks,vs in pairs(sargs) do
tracking = tracking .. ks .. ' = ' .. vs .. '<br>\n'
end
tracking = tracking .. '\n<hr />\n'
end
end
end
end
end
end
end
end
 
-- ordering of style and bodystyle
targs['style'] = concatstyles({targs['style'] or '', targs['bodystyle'] or ''})
targs['bodystyle'] = nil
-- child or subgroup
-- child or subgroup
if targs['border'] == nil then targs['border'] = pargs[1] end
if targs['border'] == nil then targs['border'] = pargs[1] end
-- debug
tracking = tracking .. '<hr /><center><b>targs</b></center><hr />\n'
for k,v in pairs(targs) do
tracking = tracking .. k .. ' = ' .. v .. '<br>\n'
end
tracking = tracking .. '\n<hr />\n'


return Navbox._navbox(targs) .. tracking
return Navbox._navbox(targs)
end
end


function q.navbox(frame)
function q.navbox(frame)
if not getArgs then
local pargs = require('Module:Arguments').getArgs(frame, {wrappers = {'Template:Navbox with collapsible groups'}})
getArgs = require('Module:Arguments').getArgs
end
local pargs = getArgs(frame, {wrappers = {'Template:Navbox with collapsible groups'}})


-- Read the arguments in the order they'll be output in, to make references number in the right order.
-- Read the arguments in the order they'll be output in, to make references number in the right order.
Cookies help us deliver our services. By using our services, you agree to our use of cookies.