Modul:Homokozó/Pepo41/MiAzAFrame

Homokozó/Pepo41/MiAzAFrame[mi ez?] • [dokumentáció: mutat, szerkeszt] • [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