Modul:Homokozó/Pepo41/Kisérletek

Homokozó/Pepo41/Kisérletek[mi ez?] • [dokumentáció: mutat, szerkeszt] • [tesztek: létrehozás]

--Version daatuma


require('Modul:No globals')
--[[
local modul1 = require('Modul:ami kell')
local modul2 = require('Modul:ami kell')
--]]

local args = {}   -- args = frame:getParent().args utasítással átadott és a sablon hívásakor megadott paraméterek

--args['vmi1']='Ez lesz majd a betöltött table'
--args['vmi2']='Valami2'
--args['vmi3']='Valami3'



local conf= {} --[[a sablon #invoke részét követő konfiguráló argumentumok: pl. 
                        kategorizálás van= igen, vagy alkategóriák kellenek= igen stb.
                        Pl: a Sablon:CitLib tartalma
                        <includeonly>{{#invoke:CitLib|run|alkategóriák kellenek= igen|sablon kimenetek kellenek=igen|differs at=1}}<!--
--></includeonly><noinclude>{{műszaki védettségű lap}}{{documentation}}</noinclude> --]]


local used_args = {} -- a felhasznált argumentumok
local lang = mw.getContentLanguage() --kikommentält
local hiba_jelzes = {} -- a hibák táblázata
local alkategoriak = {}
local ou = {}
-- ou = {} hibakeresésre szolgáló table változó, ami tartalmazza az analízisre
-- szolgáló üzeneteket, az alábbi pop() függvény gyűjtögeti a tartalmát

local s = {} --gyűjti a kimenetet



local hiba_van = false  -- function error állítja be
local kategorizalas_van = false
local popmax = 1000 -- a nyomkövetés üzeneteinek maximuma
local oumarad = popmax -- a maradék nyomkövető üzenetek száma
local alkategoriak_kellenek = false
local sablon_kimenetek_kellenek = true


local function kimenetre(x) -- feltölti a kimenetet gyűjtő s tablát
	if x then table.insert(s,x)
	end
end	




local function pop(about, ...)
     -- a t0rzset kell kommentbe tenni, hogy ne működjék a pop
	-- idézőjeles rész és bővítmények az ou számára
    -- memóriatúllépést okoz, csak teszteléshez
    local list = { ...} 
    oumarad = oumarad - 1
     -- előre csökkentjük, így mindig a maradék lehetséges 
      --pop hívások számát mutatja 
     if oumarad == 0 then return end -- hogy ne legyen memóriatúllépés
		table.insert(ou,tostring(about).. '\n ')
		for _, var in pairs(list) do
			oumarad = oumarad - 1
			table.insert(ou,tostring(var) .. '\n ')
			mw.log(ou) --kikommentelt
		end
end -- function pop(about, ...)



--[-[ kikommentelt
local function error(kategorizalas_kell, about)
	-- Enclose errorMsg with <span>
	-- Precondition:
	--     about  -- string
	hiba_van = true
	if kategorizalas_kell then
		kategorizalas_van = true
	end
	local r = about
	if type(about) == 'string' then
		if #about == 0 then
			r = 'Lua-hiba'
		end
	else
		r = tostring(about)
	end
	table.insert(hiba_jelzes, '<span class="error">' .. r .. '</span>')
end
--]-]

local function behozza()
	local ti = mw.loadData("Modul:Homokozó/Pepo41/Behozandó")
	
	local to = {} 
	for _,val in pairs(ti) do
		if type(val) == 'boolean' then 
			val = 'boolean' 
		end
		table.insert(to,tostring(val))
	end	
	
	return table.concat (to, '<&&>')	 --behozott 
 end


local function func2 (parameterek)
	
	--return (valami)
 end


local function getArgMain(names, le, suffix)
	for _, v in ipairs(names) do
		if suffix then
			v = v .. tostring(suffix)
		end
		used_args[v] = true
		if args[v] and args[v] ~= '' then
			if le and type(args[v]) == 'string' then
				-- lecsípjük az utolsó pontot vagy vesszőt
				return args[v]:gsub('[%.,]$', '')
			else
				return tostring(args[v])
			end
		end
	end
	return nil
end

local function getArg(le, ...) -- itt eredetileg a frame nem paraméter
	-- Retrieve template argument
	-- Precondition:
	-- 	   le: true értékkel jelzi, hogy levágható a paraméter végéről a felesleges vessző és pont
	--     ...: paraméternevek, az első megadott és nem üreset adja vissza

	return getArgMain({...}, le)
end

local function getArgMore(le, max, ...)
	local ret = {}
	local val = getArg(le, ...)
	if val then
		table.insert(ret, val)
	end
	for i = 2, max do
		val = getArgMain({...}, le, i)
		if val then
			table.insert(ret, val)
		end
	end
	return ret
end
--[-[
local function checkArgs()
	for n, v in pairs(args) do
		if not used_args[n] then
			local msg = 'CitPer: Nem használt paraméter: ' .. n
			mw.log(msg)
			mw.addWarning(msg)
			kategorizalas_van = true
		end
	end
end
--]]
local function bool(v)
	return (v ~= '' and v)
end


local function _fuggvenyunk()
	
	local vmi1 = behozza()  
	local vmi2 = getArg(false, 'vmi2')
	local vmi3 = getArg(true, 'vmi3')
	
	if (conf['sablon kimenetek kellenek']) then 
		sablon_kimenetek_kellenek = true -- kívánságra kikapcsolható
	else
		sablon_kimenetek_kellenek = false
	end	-- kívánságra kikapcsolható
	pop('Sablon kimenetek kellenek?='.. tostring(sablon_kimenetek_kellenek)) -- igen vagy nem a lehetséges válasz
	

	--itt sorban a paraméterek feldolgozása jön

-- vmi1 lekezelése

-- vmi2 lekezelése
	if vmi2 then
		vmi2 = '*'..vmi2-- csináljuk, ami kell
		pop('vmi2 argumentum=',vmi2)
	end


-- vmi3 lekezelése
	if vmi3 then
		vmi3 = '*'..vmi3-- csináljuk, ami kell
		pop('vmi3argumentum=',vmi3)
	end


	-- figyelmeztetés a megadott, de nem használt paraméterekre
	checkArgs()

	-- az output összeállítása
	pop('=======================nyomok vége======================================\n\n\n\n') --a nyomkövetes lezarasa	
		
		
		if sablon_kimenetek_kellenek then
		if ou and (#ou ~= 0) then kimenetre( table.concat(ou,'{*}')) end -- ez csak nyomkövetésre
	    
		
        kimenetre(tostring(mw.title.getCurrentTitle()) .. '\n\n')
		if vmi1 then	kimenetre( vmi1  ) end
		if vmi2 then	kimenetre( vmi2  ) end
		if vmi3 then	kimenetre( vmi3  ) end
		if hiba_van then kimenetre( table.concat(hiba_jelzes, ', ')) 	end
		--[[
	
			a valamik, amik kimenetre mennek
	
	
		--]]	
	    
	   

		return mw.text.trim(table.concat(s, ' ')) --return table.concat(s, ' ')--
	end -- if sablon_kimenetek_kellenek
end --	function _fuggvenyunk
		
local function _run(a, c)
        args = a
        conf = c or {}
        return _fuggvenyunk()
end

local function run(frame)
        args = frame:getParent().args -- a sablon hívásakor megadott paraméterek
        conf = frame.args -- az #invoke utasításban átadott paraméterek
        return _fuggvenyunk()
end

local p = {
        run = run,
        _run = _run
}

return p