Module:Infobox road/locations/sandbox
Appearance
![]() | This is the module sandbox page for Module:Infobox road/locations (diff). |
local p = {}
local roadDataModule = require('Module:Road data')
local format = mw.ustring.format
local frame = mw.getCurrentFrame()
local getArgs = require('Module:Arguments').getArgs
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 country
end
local function state(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]
if state == "GA" then
return "Georgia (U.S. state) |name=Georgia"
else
return frame:expandTemplate ({title='Country name', args = { country .. "-" .. state}})
end
end
local function lga(args)
local labels = {
SA = "[[Local government areas of South Australia|LGA(s)]]",
VIC = "[[Local government in Victoria|LGA(s)]]",
NSW = "[[Local government areas of New South Wales|LGA(s)]]",
QLD = "[[Local government areas of Queensland|LGA(s)]]",
NT = "[[Local government areas of the Northern Territory|LGA(s)]]",
WA = "[[Local government areas of Western Australia|LGA(s)]]",
TAS = "[[Local government areas of Tasmania|LGA(s)]]",
ACT = "District(s)"
}
local state = args.state or ''
local label = labels[state] or "[[Local government in Australia|LGA(s)]]"
return label, args.lga
end
local function locations(args)
local labels = {
highway = "Major settlements",
["rural road"] = "Major settlements",
freeway = "Major suburbs",
["city highway"] = "Major suburbs",
road = "Major suburbs",
street = "Suburb"
}
local type = args.type or ''
local label = labels[type] or "Primary<br>destinations"
return label, args.locations
end
local function location(args)
local infobox_args = {}
infobox_args['title'] = 'Location'
infobox_args['bodystyle'] = 'display:inline-table;'
infobox_args['child'] = 'yes'
------------- AUSTRALIA --------------
if country(args) == "AUS" then
infobox_args['label1'] = 'Country'
infobox_args['data1'] = "[[Australia]]"
if args.state then
if args.state == "NT" or args.state == "ACT" or args.state == "JBT" then
infobox_args['label2'] = 'Territory'
else
infobox_args['label2'] = 'State'
end
infobox_args['data2'] = frame:expandTemplate ({title='Flag', args = { state(args)}})
else
infobox_args['label2'] = 'States'
infobox_args['data2'] = args.states
end
infobox_args['label3'], infobox_args['data3'] = lga(args)
infobox_args['label4'], infobox_args['data4'] = locations(args)
------------- CANADA --------------
elseif country(args) == "CAN" then
infobox_args['label1'] = 'Country'
infobox_args['data1'] = "[[Canada]]"
if args.province then
if args.province == "YK" or args.province == "NT" or args.province == "NU" then
infobox_args['label2'] = 'Territory'
else
infobox_args['label2'] = 'Province'
end
infobox_args['data2'] = frame:expandTemplate ({title='Flag', args = { state(args)}})
else
infobox_args['label2'] = 'Provinces'
infobox_args['data2'] = args.provinces
end
if args.province == 'AB' then
infobox_args['label3'] = "Specialized and rural municipalities"
infobox_args['data3'] = args.rural_municipalities
infobox_args['label4'] = "Special areas"
infobox_args['data4'] = args.areas
infobox_args['label5'] = "Improvement districts"
infobox_args['data5'] = args.districts
elseif args.province == 'BC' then
infobox_args['label3'] = "Regional districts"
infobox_args['data3'] = args.districts or args.rural_municipalities
elseif args.province == 'MB' or args.province == 'SK' then
infobox_args['label3'] = "Rural municipalities"
infobox_args['data3'] = args.rural_municipalities
elseif args.province == 'NB' or args.province == 'PE' then
infobox_args['label3'] = "Counties"
infobox_args['data3'] = args.counties
infobox_args['label4'] = "Parishes"
infobox_args['data4'] = args.parishes
elseif args.province == 'NS' then
infobox_args['label3'] = "Counties"
infobox_args['data3'] = args.counties
elseif args.province == 'ON' then
infobox_args['label3'] = "Municipalities"
infobox_args['data3'] = args.rural_municipalities
infobox_args['label4'] = "Counties"
infobox_args['data4'] = args.counties
infobox_args['label5'] = "Regions"
infobox_args['data5'] = args.regions
infobox_args['label6'] = "Districts"
infobox_args['data6'] = args.districts
infobox_args['label7'] = "Divisions"
infobox_args['data7'] = args.divisions
elseif args.province == 'QC' then
infobox_args['label3'] = "Regional county municipalities"
infobox_args['data3'] = args.rural_municipalities
infobox_args['label4'] = "Equivalent territories"
infobox_args['data4'] = args.territories
elseif args.province == 'NT' or args.province == 'NU' then
infobox_args['label3'] = "Regions"
infobox_args['data3'] = args.regions
end
------------- CHINA --------------
elseif country(args) == "CHN" or country(args) == "HKG" or country(args) == "MAC" then
infobox_args['label1'] = 'Country'
infobox_args['data1'] = "[[China]]"
if country(args) == "HKG" then
infobox_args['label2'] = 'Special administrative region'
infobox_args['data2'] = "[[Hong Kong]]"
infobox_args['label3'] = 'Districts'
infobox_args['data3'] = args.districts
elseif country(args) == "MAC" then
infobox_args['label2'] = 'Special administrative region'
infobox_args['data2'] = "[[Macau]]"
else
infobox_args['label2'] = 'Provinces'
infobox_args['data2'] = args.provinces
infobox_args['label3'] = 'Autonomous regions'
infobox_args['data3'] = args.regions
end
------------- FRANCE --------------
elseif country(args) == "FRA" or country(args) == "GUF" or country(args) == "GLP" or country(args) == "MTQ" or country(args) == "MYT" or country(args) == "REU" then
infobox_args['label1'] = 'Country'
infobox_args['data1'] = "[[France]]"
if country(args) == "GUF" then
infobox_args['label2'] = 'Overseas region'
infobox_args['data2'] = "[[French Guiana]]"
infobox_args['label3'] = 'Department'
infobox_args['data3'] = "[[Guyane]]"
elseif country(args) == "GLP" then
infobox_args['label2'] = 'Overseas region and department'
infobox_args['data2'] = "[[Guadaloupe]]"
elseif country(args) == "MTQ" then
infobox_args['label2'] = 'Overseas region and department'
infobox_args['data2'] = "[[Martinique]]"
elseif country(args) == "MYT" then
infobox_args['label2'] = 'Overseas region and department'
infobox_args['data2'] = "[[Mayotte]]"
elseif country(args) == "REU" then
infobox_args['label2'] = 'Overseas region'
infobox_args['data2'] = "[[Réunion]]"
infobox_args['label3'] = 'Department'
infobox_args['data3'] = "[[La Réunion]]"
else
infobox_args['label2'] = 'Regions'
infobox_args['data2'] = args.regions
infobox_args['label3'] = 'Departments'
infobox_args['data3'] = args.departments
end
------------- MEXICO --------------
elseif country(args) == "MEX" then
infobox_args['label1'] = 'Country'
infobox_args['data1'] = "[[Mexico]]"
if args.state then
if args.state == "CMX" then
infobox_args['label2'] = 'Autonomous city'
else
infobox_args['label2'] = 'State'
end
infobox_args['data2'] = frame:expandTemplate ({title='Flag', args = { state(args)}})
else
infobox_args['label2'] = 'States'
infobox_args['data2'] = args.states
end
------------- NETHERLANDS --------------
elseif country(args) == "NLD" or country(args) == "ABW" or country(args) == "CUW" or country(args) == "SXM"then
infobox_args['label1'] = 'Country'
infobox_args['data1'] = "[[Kingdom of the Netherlands]]"
if country(args) == "NLD" then
infobox_args['label2'] = 'Constituent country'
infobox_args['data2'] = "[[Netherlands]]"
infobox_args['label3'] = 'Provinces'
infobox_args['data3'] = args.provinces
elseif country(args) == "ABW" then
infobox_args['label2'] = 'Constituent country'
infobox_args['data2'] = "[[ARUBA]]"
elseif country(args) == "CUW" then
infobox_args['label2'] = 'Constituent country'
infobox_args['data2'] = "[[Curaçao]]"
elseif country(args) == "SXM" then
infobox_args['label2'] = 'Constituent country'
infobox_args['data2'] = "[[Sint Maarten]]"
end
------------- RUSSIA --------------
elseif country(args) == "RUS" then
infobox_args['label1'] = 'Country'
infobox_args['data1'] = "[[Russia]]"
infobox_args['label2'] = 'Oblasts'
infobox_args['data2'] = args.oblasts
infobox_args['label3'] = 'Republics'
infobox_args['data3'] = args.republics
infobox_args['label4'] = 'Autonomous okrugs'
infobox_args['data4'] = args.okrugs
infobox_args['label5'] = 'Krais'
infobox_args['data5'] = args.krais
infobox_args['label6'] = 'Federal cities'
infobox_args['data6'] = args.federal_cities
------------- UNITED KINGDOM --------------
elseif country(args) == "GBR" or country(args) == "ENG" or country(args) == "NIR" or country(args) == "SCT" or country(args) == "WLS" or
country(args) == "GGY" or country(args) == "IMN" or country(args) == "JEY" then
infobox_args['label1'] = 'Country'
infobox_args['data1'] = "[[United Kingdom]]"
if country(args) == "ENG" then
infobox_args['label2'] = 'Constituent country'
infobox_args['data2'] = "[[England]]"
infobox_args['label3'] = 'Counties'
infobox_args['data3'] = args.counties
infobox_args['label4'] = 'Boroughs'
infobox_args['data4'] = args.boroughs
elseif country(args) == "NIR" then
infobox_args['label2'] = 'Constituent country'
infobox_args['data2'] = "[[Northern Ireland]]"
infobox_args['label3'] = 'Districts'
infobox_args['data3'] = args.districts
elseif country(args) == "SCT" then
infobox_args['label2'] = 'Constituent country'
infobox_args['data2'] = "[[Scotland]]"
infobox_args['label3'] = 'Council areas'
infobox_args['data3'] = args.areas
elseif country(args) == "WLS" then
infobox_args['label2'] = 'Constituent country'
infobox_args['data2'] = "[[Wales]]"
infobox_args['label3'] = 'Counties'
infobox_args['data3'] = args.counties
infobox_args['label4'] = 'County boroughs'
infobox_args['data4'] = args.boroughs
elseif country(args) == "GGY" then
infobox_args['label2'] = 'Crown dependency'
infobox_args['data2'] = "[[Guernsey]]"
infobox_args['label3'] = 'Parishes'
infobox_args['data3'] = args.parishes
elseif country(args) == "IMN" then
infobox_args['label2'] = 'Crown dependency'
infobox_args['data2'] = "[[Isle of Man]]"
infobox_args['label3'] = 'Sheadings'
infobox_args['data3'] = args.sheadings
elseif country(args) == "JEY" then
infobox_args['label2'] = 'Crown dependency'
infobox_args['data2'] = "[[Jersey]]"
infobox_args['label3'] = 'Parishes'
infobox_args['data3'] = args.parishes
end
infobox_args['label5'] = 'Counties'
infobox_args['data5'] = args.counties
------------- UNITED STATES --------------
elseif country(args) == "USA" then
infobox_args['label1'] = 'Country'
infobox_args['data1'] = "[[United States]]"
if args.state then
if args.state == "AS" or args.state == "GU" or args.state == "MP" or args.state == "PR" or args.state == "VI" then
infobox_args['label2'] = 'Territory'
elseif args.state == "DC" then
infobox_args['label2'] = 'Federal district'
else
infobox_args['label2'] = 'State'
end
infobox_args['data2'] = frame:expandTemplate ({title='Flag', args = { state(args)}})
else
infobox_args['label2'] = 'States'
infobox_args['data2'] = args.states
end
if args.county then
infobox_args['label3'] = 'County'
infobox_args['data3'] = args.county
else
infobox_args['label3'] = 'Counties'
infobox_args['data3'] = args.counties
end
if args.parish then
infobox_args['label4'] = 'Parish'
infobox_args['data4'] = args.parish
else
infobox_args['label4'] = 'Parishes'
infobox_args['data4'] = args.parishes
end
if args.borough then
infobox_args['label5'] = 'Borough'
infobox_args['data5'] = args.borough
else
infobox_args['label5'] = 'Boroughs'
infobox_args['data5'] = args.boroughs
end
if args.municipality then
infobox_args['label6'] = 'Municipality'
infobox_args['data6'] = args.municipality
else
infobox_args['label6'] = 'Municipalities'
infobox_args['data6'] = args.municipalities
end
else
------------- ALL OTHER COUNTRIES --------------
if country(args) ~= nil then
infobox_args['label1'] = 'Country'
infobox_args['data1'] = frame:expandTemplate ({title='Flagcountry', args = { country(args)}})
else
infobox_args['label1'] = 'Countries'
infobox_args['data1'] = args.countries
end
infobox_args['label2'] = 'Island'
infobox_args['data2'] = args.island
infobox_args['label3'] = 'Communities'
infobox_args['data3'] = args.communities
infobox_args['label4'] = 'Regions'
infobox_args['data4'] = args.regions
infobox_args['label5'] = 'Provinces'
infobox_args['data5'] = args.provinces
infobox_args['label6'] = 'States'
infobox_args['data6'] = args.states
infobox_args['label7'] = 'Governorates'
infobox_args['data7'] = args.governorates
infobox_args['label8'] = 'Counties'
infobox_args['data8'] = args.counties
infobox_args['label9'] = 'Departments'
infobox_args['data9'] = args.departments
infobox_args['label10'] = 'Cantons'
infobox_args['data10'] = args.cantons
infobox_args['label11'] = 'Prefectures'
infobox_args['data11'] = args.prefectures
infobox_args['label12'] = 'Divisions'
infobox_args['data12'] = args.divisions
infobox_args['label13'] = 'Oblasts'
infobox_args['data13'] = args.oblasts
infobox_args['label14'] = 'Districts'
infobox_args['data14'] = args.districts
infobox_args['label15'] = 'Parishes'
infobox_args['data15'] = args.parishes
infobox_args['label16'] = 'Communes'
infobox_args['data16'] = args.communes
infobox_args['label17'] = 'Territories'
infobox_args['data17'] = args.territories
infobox_args['label18'] = args.label1
infobox_args['data18'] = args.location1
infobox_args['label19'] = args.label2
infobox_args['data19'] = args.location2
infobox_args['label20'] = args.label3
infobox_args['data20'] = args.location3
infobox_args['label21'] = args.label4
infobox_args['data21'] = args.location4
infobox_args['label22'] = args.label5
infobox_args['data22'] = args.location5
infobox_args['label23'] = 'Subregions'
infobox_args['data23'] = args.subregions
infobox_args['label24'] = 'Subcounties'
infobox_args['data24'] = args.subcounties
infobox_args['label25'] = 'Subprefectures'
infobox_args['data25'] = args.subprefectures
if country(args) == "USA" then
return nil
else
infobox_args['label25'] = 'Municipalities'
infobox_args['data25'] = args.municipalities
infobox_args['label27'] = 'Major cities'
infobox_args['data27'] = args.cities
infobox_args['label28'] = 'Towns'
infobox_args['data28'] = args.towns
infobox_args['label29'] = 'Villages'
infobox_args['data29'] = args.villages
end
end
if country(args) == "GBR" or country(args) == "ENG" or country(args) == "NIR" or country(args) == "SCT" or country(args) == "WLS" or
country(args) == "GGY" or country(args) == "IMN" or country(args) == "JEY" then
infobox_args['label30'] = "[[Primary status|Primary<br>destinations]]"
else
infobox_args['label30'] = 'Primary destinations'
end
infobox_args['data30'] = args.destinations
return frame:expandTemplate ({title='Infobox', args = infobox_args})
end
local function params(args)
if country(args) or args.areas or args.borough or args.boroughs or args.cantons or args.cities or args.communes or args.communities or args.counties or
args.countries or args.county or args.departments or args.destinations or args.districts or args.divisions or args.federal_cities or
args.governorates or args.island or args.krais or args.label1 or args.label2 or args.label3 or args.label4 or args.label5 or args.lga or
args.location1 or args.location2 or args.location3 or args.location4 or args.location5 or args.locations or args.municipalities or
args.municipality or args.oblasts or args.okrugs or args.parish or args.parishes or args.prefectures or args.provinces or args.regions or
args.republics or args.rural_municipalities or args.sheadings or args.states or args.subcounties or args.subprefectures or args.subregions or
args.territories or args.towns or args.villages then
return true
else
return false
end
end
function p.location(frame)
local args = getArgs(frame)
if params(args) == false then
return nil
else
return location(args)
end
end
return p