Modul:Homokozó/Pepo41/Kisérletek

Innen: Hungaropédia
Ugrás a navigációhozUgrás a kereséshez

A modult a Modul:Homokozó/Pepo41/Kisérletek/doc lapon tudod dokumentálni

--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