Modul:Homokozó/Pepo41/Kisérletek
Megjelenés
Homokozó/Pepo41/Kisérletek[mi ez?] • [dokumentáció: mutat, ] • [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