Modulo:Uzanto:Tlustulimu/Testmodulo

Dokumentado Dokumentado

Jen testomodulo, kiu ne bezonas dokumentadon laŭ la kompleksa maniero, sed nur lokon por testoj:

{{#invoke:Uzanto:Tlustulimu/Testmodulo|informkesto2}}

redonas:

{{#invoke:Uzanto:Tlustulimu/Testmodulo|informkesto3}}

redonas:

{{#invoke:Uzanto:Tlustulimu/Testmodulo|urbo}}

redonas:

Ząbrowo

ŜtatoPollando
KomunumoStare Pole
Koordinatoj54° 5′ 26″ N, 19° 13′ 1″ O (mapo)54.09055555555619.216944444444

Loĝantaro423
vdr
Kategorio:Ŝablono geokesto sen tipo
{{#invoke:Uzanto:Tlustulimu/Testmodulo|urbotesto
|tipo= urbo
|nomo=Ząbrowo
|ŝtato=[[Pollando]]
|provinco=[[Pomeria provinco]]
|komunumo=[[Stare Pole]]
|latitudo=54/5/26
|longitudo=19/13/1
|regiono-ISO=PL
|loĝantaro=423
|koordinatoj_ne_en_titolo = true
}}


Ząbrowo

ŜtatoPollando
KomunumoStare Pole
Koordinatoj54° 5′ N, 19° 13′ O (mapo)54.09055555555619.216944444444

Loĝantaro423

Map
Ząbrowo
Vikimedia Komunejo:  Ząbrowo, Pomeranian Voivodeship [+]
vdr
{{#invoke:Uzanto:Tlustulimu/Testmodulo|urbotesto|urbo
|tipo= urbo
|nomo=Ząbrowo
|ŝtato=[[Pollando]]
|provinco=[[Pomeria provinco]]
|komunumo=[[Stare Pole]]
|latitudo=54/5/26
|longitudo=19/13/1
|regiono-ISO=PL
|loĝantaro=423
|mapligilo=jes
|wd-id=Q74529
|koordinatoj_ne_en_titolo = true
}}


* {{#invoke:Uzanto:Tlustulimu/Testmodulo|angulo}}
* {{#invoke:Uzanto:Tlustulimu/Testmodulo|angulo|Mapo=Brandenburgio|Mapo en angulo=}}
* {{#invoke:Uzanto:Tlustulimu/Testmodulo|angulo|Mapo=Brandenburgio|Mapo en angulo=Germanio}}

redonas

  • Germanio
  • Germanio
{{#invoke:Uzanto:Tlustulimu/Testmodulo|referencoj3|pkodo=P610|wdid=Q64}}

finfine funkcias. vidu: Arkenberge[1]

Referenco


Se vi havas demandon pri ĉi tiu Lua-modulo, tiam vi povas demandi en la diskutejo pri Lua-moduloj. La Intervikiaj ligiloj estu metataj al Vikidatumoj. (Vidu Helpopaĝon pri tio.)
-- modulo testoj [[Uzanto:Tlustulimu]]

local formatnum = require( "Modulo:FormatNum")
local flagoj = require( "Modulo:Portalo").image
local urboj = require( "Modulo:Geografiaĵoj/provejo2")
local wikidata = require ("Modulo:Wikidata") 	

local p = {}

-- spaco por la eksportataj funkcioj
function p.informkesto(frame)
    if not getArgs then
        getArgs = require('Modulo:Arguments').getArgs
    end

    local variabloj = 'Modulo:Geografiaĵoj/testado'
    local parametroj = mw.loadData(variabloj)
    local listo = parametroj.linioj

    --local args = getArgs(frame, {wrappers = 'Ŝablono:Informkesto geografiaĵoj'})
    local args = getArgs(frame)

    local function myIter(t, res)
        local allargs = res
        if (type(t) == "table") then
         for k,v in pairs(t) do
            allargs = allargs .. " k=<<" .. k .. ">> type(v)=" .. type(v)
            if (type(v) == "nil" or type(v) == "boolean" or type(v) == "number" or type(v) == "string") then
                allargs = allargs .. " v=<<" .. v .. ">>\n"
            elseif (type(v) == "table") then
                allargs = allargs .. " v={" .. myIter(v, allargs) .. "}\n"
            end
        end
        else return "string:<<" .. t .. ">>\n" end
        return allargs
    end
    local allargs = myIter(listo, "")
   
    return allargs
end

function p.informkesto2(frame)
    if not getArgs then
        getArgs = require('Modulo:Arguments').getArgs
    end

    local variabloj = 'Modulo:Geografiaĵoj/testado'
    local parametroj = mw.loadData(variabloj)
    local listo = parametroj.linioj

    --local args = getArgs(frame, {wrappers = 'Ŝablono:Informkesto geografiaĵoj'})
    local args = getArgs(frame)

	local r = ""
	

	for k, v in pairs(listo) do
		if type(v) == "table" then
			local p = v["parametro"] 
			local tipo = v["tipo"]
			if p ~= nil and tipo ~= nil then
				r = r .. "* parametro: " .. p .. " / " .. "tipo: " .. tipo .. " /"
				local t = args["" .. k] or ""
				local f = "\n"
				if t ~= "" and t ~= nil then
					f = " //\n"
				end
				local t2 = args["" .. v["parametro"] .. k] or ""
				if t2 ~= "" and t2 ~= nil then
					t2 = t2 .. " ()\n"
				end
				local p = v["parametro"]
				local t3 = args["" .. p .. k] or ""
				if t3 ~= "" and t3 ~= nil then
					t3 = t3 .. " ****\n"
				end			
				r = r .. t .. f .. t2 .. t3
			end
		end	
	end	
   
    return r
end

function p.informkesto3(frame)
    if not getArgs then
        getArgs = require('Modulo:Arguments').getArgs
    end

    local variabloj = 'Modulo:Geografiaĵoj/geokesto'
    local parametroj = mw.loadData(variabloj)
    local listo = parametroj.linioj

    --local args = getArgs(frame, {wrappers = 'Ŝablono:Informkesto geografiaĵoj'})
    local args = getArgs(frame)

	local r = ""
	

	for k, v in pairs(listo) do
		if type(v) == "table" then
			local p = v["parametro"] 
			local tipo = v["tipo"]
			if p ~= nil and tipo ~= nil then
				r = r .. "* parametro: " .. p .. " / " .. "tipo: " .. tipo .. " /"
				local t = args["" .. k] or ""
				local f = "\n"
				if t ~= "" and t ~= nil then
					f = " //\n"
				end
				local t2 = args["" .. v["parametro"] .. k] or ""
				if t2 ~= "" and t2 ~= nil then
					t2 = t2 .. " ()\n"
				end
				local p = v["parametro"]
				local t3 = args["" .. p .. k] or ""
				if t3 ~= "" and t3 ~= nil then
					t3 = t3 .. " ****\n"
				end			
				r = r .. t .. f .. t2 .. t3
			end
		end	
	end	
   
    return r
end

function p.urbo(frame)
    if not getArgs then
        getArgs = require('Modulo:Arguments').getArgs
    end

    local variabloj = 'Modulo:Geografiaĵoj/urbo'
    local parametroj = mw.loadData(variabloj)
    local listo = parametroj.linioj

    --local args = getArgs(frame, {wrappers = 'Ŝablono:Informkesto geografiaĵoj'})
    local args = getArgs(frame)

	local r = ""
	

	for k, v in pairs(listo) do
		if type(v) == "table" then
			local p = v["parametro"]
			local tipo = v["tipo"]
			if p ~= nil and tipo ~= nil then
				r = r .. "* parametro: " .. p .. " / " .. "tipo: " .. tipo .. " /"
				local t = args["" .. k] or ""
				local f = "\n"
				if t ~= "" and t ~= nil then
					f = " //\n"
				end
				local t2 = args["" .. v["parametro"] .. k] or ""
				if t2 ~= "" and t2 ~= nil then
					t2 = t2 .. " ()\n"
				end
				local p = v["parametro"]
				local t3 = args["" .. p .. k] or ""
				if t3 ~= "" and t3 ~= nil then
					t3 = t3 .. " ****\n"
				end			
				r = r .. t .. f .. t2 .. t3
			end
		end	
	end	
   
    return r
end

function p.numero(frame)
			local n = frame.args[1]
			local testo = tonumber(n)
			local r 
			if testo ~= nil then
				r = formatnum.format({args={n,format="eo"} }) .. "km²"
				return r
			end

end

function p.numero2(frame)
			local n = frame.args[1]
			local testo = tonumber(n)
			local r 
			if testo ~= nil then
				r = formatnum.round({args={n,precision=2} })
				r = formatnum.format({args={r,format="eo"} })				
				r = mw.ustring.gsub(r,"%.",",")
				return r
			end

end

-- por landaj flagoj kun sekva teksto
function p.flago(frame)
			local nomo = frame.args[1]	
			if nomo == "" or nomo == nil then 
				return 
			end
			local n = flagoj{nomo} 
			if n ~= "Portal-puzzle.svg" and n ~= nil then
				n = "[[Dosiero:" .. n .. "|18px]]&nbsp;" .. nomo
				return n
			else
				return nomo
			end
			
end

-- formatigi numeron
function p.formatnum(frame)
			local numero = frame.args[1]	
			local n = tonumber(numero)
			if n ~= nil then
				local r = frame:callParserFunction( "formatnum", n )
				return r
			end	
end	

-- aliaj informkestoj
function p.urbotesto (frame)
	-- This function builds the infobox used by the {{informkesto biografio}} template.
	if not getArgs then
		getArgs = require('Module:Arguments').getArgs
	end
	--local args = getArgs(frame, {wrappers = 'Template:Babel'})
--	local args = getArgs(frame, {wrappers = 'Ŝablono:Informkesto urbo/provejo2'})
	local args = getArgs(frame, {wrappers = 'Ŝablono:Informkesto geografiaĵoj'})
	
	-- antaŭdifino de kelkaj parametroj 
	if args["fono"] == "" or args["fono"] == nil then
		frame.args["fono"] = "#EFEFEF"
	end
	frame.args["submodulo"] = "urbo"
--	frame.args["ŝablono"] = "Informkesto urbo"
	
	return urboj.informkesto(frame)
	
end	


function p.angulo (frame)
		local mapo = frame.args["Mapo"] 		
		local angulmapo = frame.args["Mapo en angulo"] 	
		
			
		local frame = mw.getCurrentFrame()		
		if angulmapo == "" then
			local s = frame:expandTemplate {
				title="Surmapo",
				args={
					mapo
					}
				}	
			angulmapo = s
		end
		return angulmapo
end	


function p.referencoj (frame)
			local pk = frame.args.pkodo
			local wdid = frame.args.wdid
						local referenco
						if pk ~= "" and pk ~= nil then
							pk = mw.text.trim( pk ) 							
							if wdid ~= "" and wdid ~= nil then
								wdid = mw.text.trim( wdid ) 								
								referenco = wikidata.claim({args={pk,references="jes",id=wdid} }) 						
							else	
								referenco = wikidata.claim({args={pk,references="jes"} })   
							end
							if referenco ~= "" and referenco ~= nil then
								return referenco
							end
						end
	
end	

function p.referencoj2 (frame)
			local pk = frame.args.pkodo
			local wdid = frame.args.wdid
						local referenco
						if pk ~= "" and pk ~= nil then
							pk = mw.text.trim( pk ) 							
							if wdid ~= "" and wdid ~= nil then
								wdid = mw.text.trim( wdid ) 								
								referenco = wikidata.claim({args={"P610",references="jes",id=wdid} }) 						
							else	
								referenco = wikidata.claim({args={"P610",references="jes"} })   
							end
							if referenco ~= "" and referenco ~= nil then
								return referenco
							end
						end
	
end	


local function shablonoref(pkodo,wdid)
	local frame = mw.getCurrentFrame()
	local r = frame:expandTemplate {
			title="Wikidata/referenco",
			args={
				pkodo=pkodo,
				wdid=wdid
			}
	}
	return r
	
end	

function p.referencoj3 (frame)
			local pk = frame.args.pkodo
			local wdid = frame.args.wdid
						local referenco
						if pk ~= "" and pk ~= nil then
							--pk = mw.text.trim( pk ) 							
							if wdid ~= "" and wdid ~= nil then
								--wdid = mw.text.trim( wdid ) 								
								referenco = shablonoref(pk,wdid)						
							else	
								referenco = shablonoref(pk)  
							end
							if referenco ~= "" and referenco ~= nil then
								return referenco
							end
						end
	
end	


return p