Modulo:ProvuArgumentojn

El Vikipedio, la libera enciklopedio
Salti al navigilo Salti al serĉilo
Dokumentado Dokumentado


Ŝablona programado Diskutoj Lua Testoj Subpaĝoj
Modulo Esperanto English Deutsch

Modulo: Dokumentado


Se vi havas demandon pri ĉi tiu Lua-modulo, tiam vi povas demandi en la diskutejo pri Lua-moduloj. La Intervikiaj ligiloj estu metataj al Vikidatumoj. (Vidu Helpopaĝon pri tio.)
-- Ekzempla modulo por demonstri, kiel oni aliras al la argumentoj.
-- Por pli pri la temo "Frame object", vidu http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Frame_object
-- Alvokoj per koncerna ŝablono

local p = {}
 
-- Neniuj argumentoj, alvoko ekz.: {{#invoke:ProvuArgumentojn|Halo_mondo}}
function p.Halo_mondo()
    return "Hello, world!"
end
 
-- Unu argumento,  alvoko ekz.:  {{#invoke:ProvuArgumentojn|Halo|Petro}}
function p.Halo(frame)
    local name = frame.args[1]
    return "Halo, " .. name .. "!"
end

-- Du argumentoj,  alvoko ekz.: {{#invoke:ProvuArgumentojn|Adiciu|5|3}}
function p.Adiciu(frame)
    local num1 = tonumber(frame.args[1])
    local num2 = tonumber(frame.args[2])
    return num1 + num2
end

-- Nomataj argumentoj, ekz z. B.: {{#invoke:ProvuArgumentojn|Fruktonombrado|bananoj=5|pomoj=3}}
function p.Fruktonombrado(frame)
    local num_bananoj = frame.args['bananoj']
    local num_pomoj  = frame.args['pomoj']
    return 'Mi havas ' .. num_bananoj .. ' bananojn kaj ' .. num_pomoj .. ' pomojn'
end

-- Mikso el regulaj kaj nomataj argumentoj kaj nedevigaj nomataj argumentoj
-- Alvoko ekz.: {{#invoke:ProvuArgumentojn|Fruktokorbo|Petro|bananoj=5|ĉerizoj=7}}
function p.Fruktokorbo(frame)
    local name = frame.args[1]
    local num_bananoj  = frame.args['bananoj']
    local num_pomoj   = frame.args['pomoj']
    local num_cherizoj = frame.args['ĉerizoj']
    
    local result = name .. ' havas en sia fruktokorbo:'
    if num_bananoj  then result = result .. ' ' .. num_bananoj  .. ' bananojn'  end
    if num_pomoj   then result = result .. ' ' .. num_pomoj   .. ' pomojn'    end
    if num_cherizoj then result = result .. ' ' .. num_cherizoj .. ' ĉerizojn' end
    return result
end

-- Iteracio tra la argumentoj, alvoko ekz.: {{#invoke:ProvuArgumentojn|Frukto1|ananasojn=10|kiviojn=5}}
function p.Frukto1(frame)
    local result = 'Mi aĉetas:'
    for name, value in pairs(frame.args) do
        result = result .. ' ' .. value .. ' ' .. name
    end
    return result
end

--  Iteracio tra argumentoj kun apartaj argumentoj
-- Alvoko ekz.: {{#invoke:ProvuArgumentojn|Frukto2|Petro|ananasojn=10|kiviojn=5}}
function p.Frukto2(frame)
    local name = frame.args[1]
    local result = name .. ' aĉetas:'
    for name, value in pairs(frame.args) do
        if name ~= 1 then
            result = result .. ' ' .. value .. ' ' .. name
        end
    end
    return result
end

return p