Module:Infobox road/sections
Appearance
local p = {}
local getArgs = require('Module:Arguments').getArgs
local lengthModule = require("Module:Infobox road/length")
local infoboxModule = require("Module:Infobox road/sandbox")
local frame = mw.getCurrentFrame()
function p._section(args)
local infobox_args = {
['child'] = "yes",
['headerclass'] = infoboxModule.headerStyle
}
i = 1
while (1) do
local headern = "header" .. i
local lengthLabeln = "label" .. (i + 1)
local lengthDatan = "data" .. (i + 1)
local directionAn = "label" .. (i + 2)
local terminusAn = "data" .. (i + 2)
local jctClassn = "class" .. (i + 3)
local jctLabeln = "label" .. (i + 3)
local jctDatan = "data" .. (i + 3)
local directionBn = "label" .. (i + 4)
local terminusBn = "data" .. (i + 4)
if i == 1 then
infobox_args['title'] = args['section' .. i] or "Section " .. i
else
infobox_args[headern] = args['section' .. i] or "Section " .. i
end
infobox_args[lengthLabeln] = "Length"
infobox_args[lengthDatan] = lengthModule._length(i, args)
local dir_a = args["direction_a" .. i] or args.direction_a or ''
if dir_a ~= '' then
infobox_args[directionAn] = dir_a .. " end"
else
infobox_args[directionAn] = "From"
end
infobox_args[terminusAn] = args["terminus_a" .. i]
infobox_args[jctClassn] = "plainlist"
infobox_args[jctLabeln] = "Major intersections"
infobox_args[jctDatan] = args["junction" .. i]
local dir_b = args["direction_b" .. i] or args.direction_b or ''
if dir_b ~= '' then
infobox_args[directionBn] = dir_b .. " end"
else
infobox_args[directionBn] = "From"
end
infobox_args[terminusBn] = args["terminus_b" .. i]
if i == 15 then
break
else
i = i + 1
end
end
return frame:expandTemplate ({title='Infobox', args = infobox_args})
end
function p.section(frame)
args = getArgs(frame)
return p._section(args)
end
local function loop(args)
local ring_road = args.ring_road or ''
if ring_road ~= '' then
return "[[Ring road]] around " .. ring_road
end
local beltway_city = args.beltway_city or ''
if beltway_city ~= '' then
return "[[Beltway]] around " .. beltway_city
end
local orbital = args.orbital or ''
if orbital ~= '' then
return "[[Orbital road|Orbital]] around " .. orbital
end
local loop = args.loop or ''
if loop ~= '' then
return "[[Loop road|Loop]] around " .. loop
end
local tloop = args.tloop or ''
if tloop == 'none' then
return "Tourist loop"
elseif tloop ~= '' then
return "Tourist loop around " .. tloop
end
return nil
end
function p._main(args)
local infobox_args = {
['child'] = "yes"
}
infobox_args['title'] = args.section0 or "Major junctions"
infobox_args['data1'] = loop(args)
local dir_a = args.direction_a or ''
if dir_a ~= '' then
infobox_args['label2'] = dir_a .. " end"
else
infobox_args['label2'] = "From"
end
infobox_args['data2'] = args.terminus_a
infobox_args['class3'] = "plainlist"
infobox_args['style3'] = "display:none;"
infobox_args['label3'] = "Major intersections"
infobox_args['data3'] = args.junction or args.junctions
local dir_b = args.direction_b or ''
if dir_b ~= '' then
infobox_args['label4'] = dir_b .. " end"
else
infobox_args['label4'] = "From"
end
infobox_args['data4'] = args.terminus_b
return frame:expandTemplate ({title='Infobox', args = infobox_args})
end
function p.main(frame)
args = getArgs(frame)
return p._main(args)
end
return p