Modulo:Wikimedians map

Dokumentado por ĉi tiu modulo povas esti kreata ĉe Modulo:Wikimedians map/dokumentado

------   ATTENTION: This code is maintained at https://www.search.com.vn/wiki/fr/Module:Wikimedians_map--              Please do not modify it anywhere else, as it may get copied and override your changes.--              Suggestions can be made at https://www.search.com.vn/wiki/fr/Module_talk:Wikimedians_map----local p = {}local function filter_wiki(geojson, wikis)local filtered_geojson = {};wikis = mw.text.split(wikis, ",", true);for _, user_infos in pairs(geojson) dolocal data = user_infos.data;local should_break = false;for _,wiki in pairs(wikis) doif data[ wiki ] ~= nil thentable.insert(filtered_geojson, user_infos);break;elsefor project,langs in pairs(data) dofor _,lang in pairs(langs) doif wiki == (lang .. project) thentable.insert(filtered_geojson, user_infos);should_break = true;break;endendif should_break == true thenbreak;endendif should_break == true thenbreak;endendendendreturn filtered_geojson;endlocal function filter_project(geojson, projects)local filtered_geojson = {};projects = mw.text.split(projects, ",", true);for _, user_infos in pairs(geojson) dolocal data = user_infos.data;for _,project in pairs(projects) doif data[ project ] ~= nil thentable.insert(filtered_geojson, user_infos);break;endendendreturn filtered_geojson;endlocal function filter_lang(geojson, languages)local filtered_geojson = {};languages = mw.text.split(languages, ",", true);for _, user_infos in pairs(geojson) dolocal data = user_infos.data;local should_break = false;for _,project in pairs(data) dofor _,lang in pairs(project) dofor _,language in pairs(languages) doif language == lang thentable.insert(filtered_geojson, user_infos);should_break = true;break;endendif should_break == true thenbreak;endendif should_break == true thenbreak;endendendreturn filtered_geojson;endfunction p.draw(frame)local args = frame:getParent().args-- Choose the tagnamelocal tagname = 'mapframe'if args.lien ~= nil thentagname = 'maplink'end-- Manage the tag paramslocal tagArgs = {latitude = args.latitude == nil and "25" or args.latitude,longitude = args.longitude == nil and "22" or args.longitude,zoom = args.zoom == nil and 2 or tonumber(args.zoom),height = args.height == nil and 500 or tonumber(args.height),width = args.width == nil and 900 or tonumber(args.width),align = args.align == nil and 'center' or args.align,}if args.frameless ~= "no" thentagArgs.frameless = ''end-- Fetch the datas from commonslocal geojson = mw.ext.data.get("Wikimedians.map").data.features;-- Filter the inputs if asked forif args.site ~= nil thengeojson = filter_wiki(geojson, args.site);elseif args.project ~= nil thengeojson = filter_project(geojson, args.project);elseif args.lang ~= nil thengeojson = filter_lang(geojson, args.lang);endgeojson = '{"type": "FeatureCollection", "features": ' .. mw.text.jsonEncode(geojson) .. '}';return frame:extensionTag(tagname, geojson, tagArgs);endreturn p