Module:Infobox road/sandbox2 explained

local p =

local getArgs = require('Module:Arguments').getArgslocal roadDataModule = require("Module:Road data")local yesno = require('Module:Yesno')local routeModule = require("Module:Infobox road/route")local mapModule = require("Module:Infobox road/map")local lengthModule = require("Module:Infobox road/length/sandbox")local sectionModule = require("Module:Infobox road/sections")local locationModule = require("Module:Infobox road/locations/sandbox")local parserModule = require("Module:Road data/parser")local parser = parserModule.parserlocal format = mw.ustring.formatlocal frame = mw.getCurrentFrame

local function country(args) local state = args.state or args.province local country local countryModule = mw.loadData("Module:Road data/countrymask") local country = args.country or countryModule[state] return countryend

-- HEADER COLORS

function p.headerStyle(frame) local args = getArgs(frame) local deleted = args.decommissioned or args.deleted local uc = args.header_type

"under construction" or args.header_type

"const" or args.header_type

"uc" local minor = args.header_type

"minor" local hist = args.header_type

"hist" or args.header_type

"historic" or args.header_type

"historical" or args.header_type

"scenic" local color = parser(args, 'color') if uc then return "header-uc" elseif minor then return "header-minor" elseif deleted then return "header-deleted" elseif hist then return "header-hist" elseif color then return "header-" .. color elseif args.state or args.province or args.country then local country = country(args) return "header-" .. country or "header-default" else return "header-default" endend

-- SECOND IMAGE

local function photo(args) local country = country(args) local photo = args.photo or args.image local width = args.photo_wide or args.image_width or "290px" local alt = args.photo_alt or args.image_alt or photo if photo

nil then return nil elseif country

"USA" then return nil else return string.format('', photo, width, alt) endend

function p.photo(frame) local args = getArgs(frame) return photo(args)end

-- TRANSLATION

local function translate(args, lang) local lang = parser(args, 'lang') or args.lang local translation = args.translation or parser(args, 'translation') if not translation then return nil else return frame:expandTemplate endend

function p.translate(frame) local pframe = frame:getParent local config = frame.args -- the arguments passed BY the template, in the wikitext of the template itself local args = pframe.args -- the arguments passed TO the template, in the wikitext that transcludes the template local lang = config.lang return translate(args, lang)end

-- MAIN INFOBOX BELOW --

local function info(args) local country = country(args) local statejct = args.state or args.province local countyjct = args.county local parentType = args.spur_type local parentRoute = args.spur_of local aux = parser(args, 'aux') or "Auxiliary route" or nil local law = parser(args, 'law') or nil local maint = args.maint or parser(args, 'maint') or nil local formed = args.established or args.formed or nil local deleted = args.decommissioned or args.deleted or nil local infobox_args =

--ROUTE INFORMATION -- if maint ~= nil or args.section or args.spur_of or args["e-road"] or args.ahn or args.tahn or args.mrn or args.length_mi or args.length_km or args.time_period or args.formed or args.allocation or args.history or args.restrictions or args.tourist or args.status or args.margary then infobox_args['header2'] = "Route information" else return nil end local jct = frame:expandTemplate

if not parentType and not parentRoute then return nil elseif type(aux)

"table" then infobox_args['data3'] = "Auxiliary route of " .. jct else infobox_args['data3'] = tostring(aux) .. " of " .. jct end if args["e-road"] then local eshield = args["e-road-shield"] or infobox_args['data4'] = eshield .. " Part of " .. args["e-road"] end if args.ahn then local ashield = args["ahn-shield"] or infobox_args['data5'] = ashield .. " Part of " .. args.ahn end if args.tahn then local tshield = args["tahn-shield"] or infobox_args['data6'] = tshield .. " Part of " .. args.tahn end if args.mrn then local mshield = args["mrn-shield"] or infobox_args['data7'] = mshield .. " Part of " .. args.mrn end infobox_args['label8'] = "Legal definition" infobox_args['data8'] = law infobox_args['label8'] = "Maintenance" if maint

"none" or nil then return nil else infobox_args['data8'] = maint end if args.time_period then infobox_args['label9'] = "Established by" infobox_args['data9'] = args.established_by end infobox_args['label12'] = "Length" infobox_args['data12'] = lengthModule._length infobox_args['label14'] = "Planned length" infobox_args['data14'] = lengthModule._length infobox_args['label16'] = "Untolled length" infobox_args['data16'] = lengthModule._length infobox_args['label18'] = "Tolled length" infobox_args['data18'] = lengthModule._length infobox_args['label20'] = "Length under construction" infobox_args['data20'] = lengthModule._length infobox_args['label22'] = "Overall length" infobox_args['data22'] = lengthModule._length infobox_args['label25'] = "Status" infobox_args['data25'] = args["status"] infobox_args['label26'] = "Existed" if formed

nil then return nil elseif deleted

nil then infobox_args['data26'] = formed .. "–present" else infobox_args['data26'] = formed .. "–" .. deleted end infobox_args['label27'] = "History" infobox_args['data27'] = args.history infobox_args['label28'] = "Time period" infobox_args['data28'] = args.time_period if args.time_period then infobox_args['label29'] = "Cultural significance" infobox_args['data29'] = args.significance infobox_args['label30'] = "Known for" infobox_args['data30'] = args.known_for infobox_args['label31'] = "Related routes" infobox_args['data31'] = args.related else infobox_args['label30'] = "Known for" infobox_args['data30'] = args.known_for end if country

"AUS" then infobox_args['label31'] = "Allocation" else infobox_args['label31'] = "Component
highways" end infobox_args['data31'] = args.allocation infobox_args['label32'] = "Tourist routes" infobox_args['data32'] = args.tourist infobox_args['label33'] = "Restrictions" infobox_args['data33'] = args.restrictions return frame:expandTemplate end

function p.info(frame) local args = getArgs(frame) return info(args)end local function bottom(args) local ntitle = parser(args, 'nbrowse') or nil local nlist = parser(args, 'nbrowselinks') or nil local title = parser(args, 'browse') or nil local list = parser(args, 'browselinks') or nil local previousRoute = args.previous_route local nextRoute = args.next_route local extended = args.browse local infobox_args = -- HIGHWAY SYSTEM -- if args.nobrowse or country

nil then return nil elseif country

"GBR" or country

"ENG" or country

"NIR" or country

"SCT" or country

"WLS" or country

"GGY" or country

"IMN" or country

"JEY" or country

"AIA" or country

"BMU" or country

"IOT" or country

"VGB" or country

"CYM" or country

"FLK" or country

"GIB" or country

"MSR" or country

"PCN" or country

"SHN" or country

"SGS" or country

"TCA" then infobox_args['header5'] = "Road network" else infobox_args['header5'] = "Highway system" end -- LINKS AND BROWSE SECTION --

if args.nobrowse then return nil else if ntitle ~= nil then infobox_args['rowclass10'] = "hlist" infobox_args['rowstyle10'] = "font-weight: bold;" infobox_args['data10'] = ntitle end if nlist ~= nil then infobox_args['rowclass11'] = "hlist" infobox_args['data11'] = nlist end if title ~= nil then infobox_args['rowclass12'] = "hlist" infobox_args['rowstyle12'] = "font-weight: bold;" infobox_args['data12'] = title end if list ~= nil then infobox_args['rowclass12'] = "hlist" infobox_args['data12'] = list end end infobox_args['data13'] = args.system if args.nobrowse then return nil else if previousRoute or nextRoute then infobox_args['rowstyle15'] = "width:100%; background:none; border-collapse:collapse; display:inline-table;" local boxModule = require "Module:Road data/browse/sandbox" -- remove "/sandbox" when live! infobox_args['data15'] = boxModule._browse(args) end end if args.nobrowse or extended

nil then return nil else infobox_args['rowstyle17'] = "width:100%; background:none; border-collapse:collapse; display:inline-table;" infobox_args['data17'] = extended end infobox_args['data20'] = args.nhrp or args.embedded infobox_args['subbox'] = yesno(args.child) return frame:expandTemplate end

function p.bottom(frame) local args = getArgs(frame) return bottom(args)end

return p