Modul:Arguments

Izvor: Hrvatska internetska enciklopedija
Inačica 754306 od 15. travanj 2026. u 13:39 koju je unio WikiSysop (razgovor | doprinosi)
(razl) ←Starija inačica | vidi trenutačnu inačicu (razl) | Novija inačica→ (razl)
Prijeđi na navigaciju Prijeđi na pretraživanje
Dokumentacija modula


-- Modul:Arguments
-- Ova verzija popravlja grešku s povratnom vrijednosti (args vs arg)
local p = {}

-- Pomoćna funkcija za čišćenje razmaka
local function trim(s)
    if type(s) == "string" then
        return (mw.text.trim(s))
    end
    return s
end

-- Glavna funkcija koju pozivaju drugi moduli
-- Upotreba: local args = require('Module:Arguments').getArgs(frame)
function p.getArgs(frame, options)
    options = options or {}
    local parentOnly = options.parentOnly
    local args = {}

    -- Interna funkcija za spajanje izvora argumenata
    local function merge(source)
        if not source then return end
        for k, v in pairs(source) do
            if type(v) == "string" then
                local v_trimmed = trim(v)
                if v_trimmed ~= "" then
                    args[k] = v_trimmed
                end
            else
                args[k] = v
            end
        end
    end

    -- 1. Prvo dohvaćamo argumente iz samog poziva modula (lokalni)
    if not parentOnly then
        merge(frame.args)
    end

    -- 2. Zatim dohvaćamo argumente iz predloška koji je pozvao modul (roditeljski)
    local parent = frame:getParent()
    if parent then
        merge(parent.args)
    end

    -- KLJUČNI POPRAVAK: Vraćamo 'args' (tablica koju smo punili), a ne 'arg'
    return args
end

return p