Difference between revisions of "Module:Infobox road/map/sandbox"

From blackwiki
Jump to navigation Jump to search
test>Happy5214
(Create sandbox version of Module:Infobox road/map)
 
test>Happy5214
(Updating to mw.wikibase.getEntityObject; using tabs for indentation)
Line 4: Line 4:
  
 
function p.map(frame)
 
function p.map(frame)
    local pframe = frame:getParent()
+
local argsModule = require("Module:Arguments")
    local config = frame.args -- the arguments passed BY the template, in the wikitext of the template itself
+
local args = argsModule.getArgs(frame)
    local args = pframe.args -- the arguments passed TO the template, in the wikitext that transcludes the template
+
   
+
local map_custom = args.map_custom or ''
    local map_custom = args.map_custom or ''
+
local map = args.map or ''
    local map = args.map or ''
+
if map_custom == "yes" then
    if map_custom == "yes" then
+
return '<span style="white-space:nowrap;">' .. map .. '</span>'
        return '<span style="white-space:nowrap;">' .. map .. '</span>'
+
end
    end
+
if map == '' then
    if map == '' then
+
local entity = mw.wikibase.getEntityObject() or {}
        local entity = mw.wikibase.getEntity() or {}
+
local claims = entity.claims or {}
        local claims = entity.claims or {}
+
local mapProp = claims.P15
        local mapProp = claims.p15
+
if not mapProp or mapProp[1].mainsnak.snaktype ~= 'value' then
        if not mapProp or mapProp[0].mainsnak.snaktype ~= 'value' then
+
return ""
            return ""
+
end
        end
+
map = mapProp[1].mainsnak.datavalue.value
        map = mapProp[0].mainsnak.datavalue.value
+
end
    end
+
local filecode = "[[File:" .. map .. "|"
    local filecode = "[[File:" .. map .. "|"
+
   
+
local countrymod = require("Module:Infobox road/meta/mask/country")
    local countrymod = require"Module:Infobox road/meta/mask/country"
+
local countryarg = args.country
    local countryarg = args.country
+
local state = args.state or args.province
    local state = args.state or args.province
+
local country = ''
    local country = ''
+
if countryarg and state then
    if countryarg and state then
+
country = countrymod._country(state, countryarg)
        country = countrymod._country(state, countryarg)
+
end
    end
+
   
+
local mapsize = mapsizes[country] or '290'
    local mapsize = mapsizes[country] or '290'
+
local alt = args.map_alt or ''
    local alt = args.map_alt or ''
+
filecode = filecode .. mapsize .. 'px|alt=' .. alt .. ']]'
    filecode = filecode .. mapsize .. 'px|alt=' .. alt .. ']]'
+
return filecode
    return filecode
 
 
end
 
end
  
 
return p
 
return p

Revision as of 22:26, 20 February 2015

Documentation for this module may be created at Module:Infobox road/map/sandbox/doc

local p = {}

local mapsizes = {["DEU"] = "200", ["USA"] = "290x172"}

function p.map(frame)
	local argsModule = require("Module:Arguments")
	local args = argsModule.getArgs(frame)
	
	local map_custom = args.map_custom or ''
	local map = args.map or ''
	if map_custom == "yes" then
		return '<span style="white-space:nowrap;">' .. map .. '</span>'
	end
	if map == '' then
		local entity = mw.wikibase.getEntityObject() or {}
		local claims = entity.claims or {}
		local mapProp = claims.P15
		if not mapProp or mapProp[1].mainsnak.snaktype ~= 'value' then
			return ""
		end
		map = mapProp[1].mainsnak.datavalue.value
	end
	local filecode = "[[File:" .. map .. "|"
	
	local countrymod = require("Module:Infobox road/meta/mask/country")
	local countryarg = args.country
	local state = args.state or args.province
	local country = ''
	if countryarg and state then
		country = countrymod._country(state, countryarg)
	end
	
	local mapsize = mapsizes[country] or '290'
	local alt = args.map_alt or ''
	filecode = filecode .. mapsize .. 'px|alt=' .. alt .. ']]'
	return filecode
end

return p