Modul:Homokozó/Pepo41/MiAzAFrame
Homokozó/Pepo41/MiAzAFrame[mi ez?] • [dokumentáció: mutat, ] • [tesztek: létrehozás]
local p = {}
function p.val_to_str(v)
if type(v) == 'string' then
v = mw.ustring.gsub(v, '\n', '\\n')
if mw.ustring.match(mw.ustring.gsub(v, '[^\'"]', ''), '^"+$') then
return "'" .. v .. "'"
end
return '"' .. mw.ustring.gsub(v, '"', '\\"' ) .. '"'
else
return type(v) == 'table' and p.table_to_str(v) or tostring(v)
end
end
function p.table_key_to_str(k)
if type(k) == 'string' and mw.ustring.match(k, '^[_%a][_%a%d]*$') then
return k
else
return '[' .. p.val_to_str(k) .. ']'
end
end
function p.table_to_str(tbl)
local result, done = {}, {}
for k, v in ipairs(tbl) do
table.insert(result, p.val_to_str(v))
done[k] = true
end
for k, v in pairs(tbl) do
if not done[k] then
table.insert(result, p.table_key_to_str(k) .. '=' .. p.val_to_str(v))
end
end
return '{' .. table.concat(result, ',') .. '}'
end
function p.dump(tbl, recursive)
if type(tbl) ~= 'table' then
return '<not a table!>'
end
local s = '{ '
for k,v in pairs(tbl) do
if type(k) ~= 'number' then
k = '"'..k..'"'
end
if type(v) == 'table' then
if recursive then
v = p.dump(v, true)
else
v = 'table'
end
elseif type(v) == 'boolean' then -- no boolean -> string autoconversion in Lua
if v then
v = 'true'
else
v = 'false'
end
elseif type(v) == 'function' then
if v then
v = 'function'
end
end
s = s .. '['..k..'] = ' .. v .. ','
end -- for k,v in pairs(tbl)
return s .. '} '
end
p.getArg = function ( arg, assign )
-- Retrieve template argument
-- Precondition:
-- arg -- string or number; argument identifier
-- assign -- any, optional; default value
-- Uses:
-- mw.getCurrentFrame()
local r = mw.getCurrentFrame().args[ arg ] -- a kurrens frame argumentumai közül az arg kulccsal megadott
if type( r ) ~= "string" then
if type( assign ) == nil then
r = "{{{<" .. arg .. ">}}}" --ha r nem string tipus, azaz és assign nil érték
else
r = assign -- ha r nem string tipus, és assign nem nil
end
end
return r -- ha r string tipus
end -- LuaWiki.getArg()
---[[
function p.MiAz(frame)
local s=""
s=p.table_to_str(frame) -- p.table_to_str(frame.args)
-- {{#invoke:Homokozó/Pepo41/MiAzAFrame|MiAz|AzMiAz}} hívás esetén ez a frame.args tartalma {"AzMiAz"}
s= p.getArg ("szerző")
return s
end
--]]
-- ITT MOST TÖBB KÍSÉRLET KÖVETKEZIK MEGJEGYZÉSEKBE ZÁRVA
--[[
-- {{#invoke:Homokozó/Pepo41/MiAzAFrame|MiAz|AzMiAz}} hívás esetén ez a frame.args tartalma üres
--{newTemplateParserValue=function,getParent=function,argumentPairs=function,callParserFunction=function,preprocess=function,extensionTag=function,
--args={},newParserValue=function,expandTemplate=function,getArgument=function,newChild=function}
-- ha a Luasablon hívása oldalon keresztül hívom a Pepo41Kisérletei sablont, ebből hívom meg
--{newTemplateParserValue=function,getParent=function,argumentPairs=function,
--callParserFunction=function,preprocess=function,extensionTag=function,
--args={"PepKisSablonparam1","PepKisSablonparam2","PepKisSablonparam3"}, --Pepo41Kisérletei sablonban kiadott paraméterek
--newParserValue=function,expandTemplate=function,getArgument=function,newChild=function}
function p.MiAz(frame)
local s=""
s= p.table_to_str(frame:getParent())
return s
end
--]]
--[[
function p.MiAz(frame)
local pframe = frame:getParent()
local args = pframe.args -- azok a paraméterek, amelyek Pepo41Kisérletei sablont kisérik a Pepo41/Luasablon hivása oldalon
local config = frame.args -- az #invoke utasítással átadott paraméterek, pl itt pagename
local s=""
s= p.table_to_str(args)-- > {"PepKisSablonparam1","PepKisSablonparam2","PepKisSablonparam3"}
--a Pepo41Kisérletei sablonban kiadott paraméterek
-- s= p.table_to_str(config) -->{"Mondottam ember","küzdj és bízva bízzál",eltolás="balra",
--szín="kék",pagename="Pepo41/Luasablon hivása"} az #invoke utasítással átadott paraméterek
return s
end
--]]
--[[
function p.MiAz(frame)
--Szerkesztő:Pepo41/Luasablon hivása lapról hívott Pepo4Kísérletei sablon alapján
-- s= p.getArg ( 1) -->Mondottam ember
--s= p.getArg ( 2) -->küzdj és bízva bízzál
-- s= p.getArg ("eltolás") -->balra
-- s= p.getArg ("szín") -->kék
return s
end
--]]
--[[ EZ A frame: részletek http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Frame_object
{newTemplateParserValue=function, http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#frame:newTemplateParserValue
getParent=function,
argumentPairs=function,
callParserFunction=function,
preprocess=function,
extensionTag=function,
args={}, --args={"AzMiAz"} lásd fent
newParserValue=function,
expandTemplate=function,
getArgument=function,
newChild=function}
--]]
return p