Mòdul:Location map/multi

Icona de documentació de mòdul Documentació del mòdul [ mostra ] [ modifica el codi ] [ mostra l'historial ] [ refresca ]

Mòdul Location map (codi · ús · discussió · proves · tests · casos prova | subpàgines · enllaços)

A continuació es mostra la documentació transclosa de la subpàgina /ús. [salta a la caixa de codi]


Ús

Aquest mòdul implementa les plantilles {{Location map+}} i {{Location map many}}. Consulteu les pàgines de les plantilla per obtenir instruccions d'ús.

Categoria de seguiment/manteniment

  • Categoria:Mapes amb possibles errors (0)

Vegeu també

-- Version 12/2021: ---- Added suport for label_rotate, mark_bottom and wd_coord require('Module:No globals')local p = {}local getArgs = require('Module:Arguments').getArgslocal locmap = require('Module:Location map')local function switcherSeparate(s)if s == nil then return {} endlocal retval = {}for i in string.gmatch(s .. '#', '([^#]*)#') doi = mw.text.trim(i)retval[#retval + 1] = (i ~= '' and i)endreturn retvalendfunction p.container(frame, args, map)local caption_list = {}if not args thenargs = getArgs(frame, {wrappers = 'Template:Location map+', valueFunc = locmap.valueFunc})endif not map thenif args[1] thenmap = {}for mapname in string.gmatch(args[1], '[^#]+') domap[#map + 1] = locmap.getMapParams(mapname, frame)endif args['caption'] thenif args['caption'] == "" thenwhile #caption_list < #map docaption_list[#caption_list + 1] = args['caption']endelsefor caption in mw.text.gsplit(args['caption'], '##', true) docaption_list[#caption_list + 1] = captionendendendif #map == 1 then map = map[1] endelsemap = locmap.getMapParams('Terra', frame)endendif type(map) == 'table' thenlocal placeslist = mw.text.gsplit(args.places, '#PlaceList#')local permaplaces = {}local numbermaps = #maplocal count = 0for i = 1,numbermaps dopermaplaces[i] = {}endfor place in placeslist dotable.insert(permaplaces[count%numbermaps + 1],place)count = count + 1endlocal altmaps = switcherSeparate(args.AlternativeMap)if #altmaps > #map thenerror(string.format("S'han proveït %d AlternativeMaps, però només s'han proveït %d mapes", #altmaps, #map))endlocal overlays = switcherSeparate(args.overlay_image)if #overlays > #map thenerror(string.format("S'han proveït %d overlay_images, però només s'han proveït %d mapes", #overlays, #map))endif #caption_list > #map thenerror(string.format("S'han proveït %d captions, però només s'han proveït %d mapes", #caption_list, #map))endlocal outputs = {}args.autoSwitcherLabel = truefor k,v in ipairs(map) doargs.AlternativeMap = altmaps[k]args.overlay_image = overlays[k]args.caption = caption_list[k]args.places = table.concat(permaplaces[k])outputs[k] = p.container(frame, args, v)endreturn '<div class="switcher-container">' .. table.concat(outputs) .. '</div>'elsereturn locmap.top(frame, args, map) .. (args.places and args.places:gsub('%s*\n%s*', '') or '') .. locmap.bottom(frame, args, map)endendlocal function manyMakeArgs(fullArgs, n)if n == 1 thenreturn {lat = fullArgs.lat1 or fullArgs.lat,long = fullArgs.long1 or fullArgs.long,wd_coord = fullArgs.wd_coord1 or fullArgs.wd_coord,coordinates = fullArgs.coordinates1 or fullArgs.coordinates,lat_deg = fullArgs.lat1_deg or fullArgs.lat_deg,lat_min = fullArgs.lat1_min or fullArgs.lat_min,lat_sec = fullArgs.lat1_sec or fullArgs.lat_sec,lat_dir = fullArgs.lat1_dir or fullArgs.lat_dir,lon_deg = fullArgs.lon1_deg or fullArgs.lon_deg,lon_min = fullArgs.lon1_min or fullArgs.lon_min,lon_sec = fullArgs.lon1_sec or fullArgs.lon_sec,lon_dir = fullArgs.lon1_dir or fullArgs.lon_dir,outside = fullArgs.outside1 or fullArgs.outside,mark = fullArgs.mark1 or fullArgs.mark,marksize = fullArgs.mark1size or fullArgs.marksize,mark_bottom = fullArgs.mark1_bottom or fullArgs.mark_bottom,link = fullArgs.link1 or fullArgs.link,label = fullArgs.label1 or fullArgs.label,label_size = fullArgs.label1_size or fullArgs.label_size,label_width = fullArgs.label1_width or fullArgs.label_width,position = fullArgs.position1 or fullArgs.pos1 or fullArgs.position or fullArgs.pos,background = fullArgs.background1 or fullArgs.bg1 or fullArgs.background or fullArgs.bg}elsereturn {lat = fullArgs['lat' .. n],long = fullArgs['long' .. n],wd_coord = fullArgs['wd_coord' .. n],coordinates = fullArgs['coordinates' .. n],lat_deg = fullArgs['lat' .. n .. '_deg'],lat_min = fullArgs['lat' .. n .. '_min'],lat_sec = fullArgs['lat' .. n .. '_sec'],lat_dir = fullArgs['lat' .. n .. '_dir'],lon_deg = fullArgs['lon' .. n .. '_deg'],lon_min = fullArgs['lon' .. n .. '_min'],lon_sec = fullArgs['lon' .. n .. '_sec'],lon_dir = fullArgs['lon' .. n .. '_dir'],outside = fullArgs['outside' .. n],mark = fullArgs['mark' .. n],marksize = fullArgs['mark' .. n .. 'size'],mark_bottom = fullArgs['mark' .. n .. '_bottom'], link = fullArgs['link' .. n],label = fullArgs['label' .. n],label_size = fullArgs['label' .. n .. '_size'],label_width = fullArgs['label' .. n .. '_width'],label_rotate = fullArgs['label' .. n .. '_rotate'],position = fullArgs['position' .. n] or fullArgs['pos' .. n],background = fullArgs['background' .. n] or fullArgs['bg' .. n]}endendfunction p.many(frame, args, map)if not args thenargs = getArgs(frame, {wrappers = 'Template:Location map many', valueFunc = locmap.valueFunc})endif not args[1] thenargs[1] = 'Terra'endif not map thenmap = {}for mapname in string.gmatch(args[1], '[^#]+') domap[#map + 1] = locmap.getMapParams(mapname, frame)endif #map ~= 1 thenlocal outputs = {}args.autoSwitcherLabel = truefor k,v in ipairs(map) dooutputs[k] = p.many(frame, args, v)endreturn '<div class="switcher-container">' .. table.concat(outputs) .. '</div>'endmap = map[1]endlocal marks = {}local markhighif args.markhigh thenmw.log("S'ha eliminat el paràmetre markhigh utilitzat.")local parent = frame:getParent()if parent thenmw.log('El pare és ' .. parent:getTitle())endmw.logObject(args, 'args')markhigh = trueendfor k, v in pairs(args) do -- @todo change to uargs once we have thatif v thenif string.sub(k, -4) == '_deg' thenk = string.sub(k, 1, -5)endif string.sub(k, 1, 3) == 'lat' thenk = tonumber(string.sub(k, 4))if k thentable.insert(marks, k)endelseif string.sub(k, 1, 11) == 'coordinates' thenk = tonumber(string.sub(k, 12))if k thentable.insert(marks,k)endendendendtable.sort(marks)if marks[1] ~= 1 and (args.lat or args.lat_deg or args.coordinates) thentable.insert(marks, 1, 1)endlocal body = ''for _, v in ipairs(marks) do-- don't try to consolidate this into the above loop. ordering of elements from pairs() is unspecifiedbody = body .. tostring( locmap.mark(frame, manyMakeArgs(args, v), map) )if args['mark' .. v .. 'high'] thenmw.log("S'ha eliminat el paràmetre mark" .. v .. 'high utilitzat.')local parent = frame:getParent()if parent thenmw.log('El pare és ' .. parent:getTitle())endmw.logObject(args, 'args')markhigh = trueendendargs.label = nil -- there is no global labelreturn locmap.top(frame, args, map) .. body .. locmap.bottom(frame, args, map) .. (markhigh and '[[Categoria:Mapes amb possibles errors|Pàgina amb paràmetre eliminat]]' or '')endfunction p.load(frame, args, map)if not args thenargs = getArgs(frame, {frameOnly = true})endlocal dataModule = mw.loadData(frame.args[1])if not map thenmap = {}for mapname in string.gmatch(dataModule.containerArgs[1], '[^#]+') domap[#map + 1] = locmap.getMapParams(mapname, frame)endif #map ~= 1 thenlocal outputs = {}args.autoSwitcherLabel = truefor k,v in ipairs(map) dooutputs[k] = p.load(frame, args, v)endreturn '<div class="switcher-container">' .. table.concat(outputs) .. '</div>'endmap = map[1]endlocal marks = {}if dataModule.marks thenfor k,markArgs in ipairs(dataModule.marks) domarks[k] = tostring(locmap.mark(frame, markArgs, map))endendif dataModule.secondaryModules thenfor _,modname in ipairs(dataModule.secondaryModules) dofor _,markArgs in ipairs(mw.loadData(modname).marks) domarks[#marks + 1] = tostring(locmap.mark(frame, markArgs, map))endendendreturn locmap.top(frame, dataModule.containerArgs, map) .. table.concat(marks) .. locmap.bottom(frame, dataModule.containerArgs, map)endreturn p