วิกิพีเดีย
มอดูล:Infobox road/locations
คู่มือการใช้งานมอดูล[สร้าง]
คุณอาจจะต้องการสร้างคู่มือการใช้งานของมอดูลนี้ ผู้เขียนสามารถทำการทดลองได้ที่กระบะทราย (สร้าง | คัดลอก) และชุดทดสอบ (สร้าง) ของมอดูลนี้ โปรดเพิ่มหมวดหมู่ไปที่หน้าย่อย /doc หน้าย่อยของมอดูลนี้ |
local p = {} local function countries(args, country) local data = {EUR = "no", ASIA = "no", default = "yes"} local yesOrNo = data[country] or data.default if yesOrNo == "no" then return args.countries else return nil end end local function regions(args, country) local data = {EUR = "no", ESP = "no", ITA = "no", HRV = "no", CZE = "no", CAN = "no", CYP = "no", GRC = "no", POL = "no", HUN = "no", SVN = "no", SVK = "no", AUT = "no", TUR = "no", UKR = "no", BIH = "no", SRB = "no", SGP = "no", AUS = "no", default = "yes"} if args.communities then return "Autonomous communities:", args.communities end local yesOrNo = data[country] or data.default if yesOrNo == "no" then return "Regions:", args.regions else return "Regions:", nil end end local function states(args, country) local data = {USA = "no", IND = "no", DEU = "no", AUT = "no", MEX = "no", AUS = "no", BRA = "no", default = "yes"} local yesOrNo = data[country] or data.default if yesOrNo == "no" then return args.states else return nil end end local function provinces(args, country) local data = {CAN = "no", TUR = "no", THA = "no", IRN = "no", NLD = "no", ESP = "no", PHL = "no", default = "yes"} local yesOrNo = data[country] or data.default if yesOrNo == "no" then return args.provinces else return nil end end local function counties(args, country) local counties = args.counties local districts = args.districts local municipalities = args.municipalities local parishes = args.parishes local boroughs = args.boroughs if counties then return "[[เคาน์ตี]]", counties elseif districts then return "Districts", districts elseif municipalities then return "Municipalities", municipalities elseif parishes then return "[[เขตแพริช|แพริช]]", parishes elseif boroughs then return "โบโร", boroughs else return '', nil end end local function ruralMunis(args, country) local label local province = country or '' if province == "AB" then label = "Specialized<br>and rural<br>municipalities" else label = "Rural<br>municipalities" end local data = {MB = "no", SK = "no", AB = "no", default = "yes"} local yesOrNo = data[province] or data.default if yesOrNo == "no" then return label, args.rural_municipalities else return '', nil end end local function divisions(args, country) local province = country or '' local data = {ON = "no", default = "yes"} local yesOrNo = data[province] or data.default if yesOrNo == "no" then return args.divisions else return nil end end local function cities(args, country, parameter) local data = {USA = "yes", default = "no"} local yesOrNo = data[country] or data.default if yesOrNo == "no" then return args[parameter] else return nil end end local function destinations(args, country) local label if country == "GBR" then label = "[[ถนนในสหราชอาณาจักร|ปลายทาง<br>หลัก]]" else label = "ปลายทาง<br>หลัก" end local data = {AUS = "no", NZL = "no", GBR = "no", IRL = "no", MYS = "no", IND = "no", NPL = "no", default = "yes"} local yesOrNo = data[country] or data.default if yesOrNo == "no" then return label, args.destinations else return '', nil end end local function lga(args, country) 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 data = {AUS = "no", default = "yes"} local yesOrNo = data[country] or data.default if yesOrNo == "no" then local state = args.state or '' local label = labels[state] or "[[Local government in Australia|LGA(s)]]" return label, args.lga else return '', nil end end local function locations(args, country) local labels = {highway = "Major settlements", ["rural road"] = "Major settlements", freeway = "Major suburbs", ["city highway"] = "Major suburbs", road = "Major suburbs", street = "Suburb"} local data = {AUS = "no", default = "yes"} local yesOrNo = data[country] or data.default if yesOrNo == "no" then local type = args.type or '' local label = labels[type] or "Primary<br>destinations" return label, args.locations else return '', nil end end function p.locations(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 parameters = {label1 = "ประเทศ:", label2 = "ภูมิภาค:", label3 = "รัฐ:", label4 = "จังหวัด:", label7 = "เขตการปกครอง:", label8 = "เมืองหลัก:", label9 = "เมือง:", label10 = "หมู่บ้าน:", child = "yes", decat = "yes", labelstyle = "text-align:right", title = "ตำแหน่งที่ตั้ง"} local data ={} local function emptyParam(param) if param == '' then return nil else return param end end local country = emptyParam(args.country) local state = emptyParam(args.state) local province = emptyParam(args.province) if not(country) then local stateParam = args.state or args.province if not(stateParam) then country = '' else local countryMask = require "Module:Infobox road/meta/mask/country" country = countryMask._country(stateParam, country) end end data[1] = countries(args, country) parameters.label2, data[2] = regions(args, country) data[3] = states(args, country) data[4] = provinces(args, country) parameters.label5, data[5] = counties(args, country) parameters.label6, data[6] = ruralMunis(args, province) data[7] = divisions(args, province) data[8] = cities(args, country, 'cities') data[9] = cities(args, country, 'towns') data[10] = cities(args, country, 'villages') parameters.label11, data[11] = destinations(args, country) parameters.label12, data[12] = lga(args, country) parameters.label13, data[13] = locations(args, country) local hasData = false for k,v in pairs(data) do if v ~= '' then hasData = true break end end if not(hasData) then return '' end for k,v in pairs(data) do parameters["data" .. k] = v end local infoboxModule = require 'Module:Infobox' return infoboxModule.infobox(parameters) end return p