Modul:Arguments: razlika između inačica

Izvor: Hrvatska internetska enciklopedija
Prijeđi na navigaciju Prijeđi na pretraživanje
Zamijenjen sadržaj stranice s »-- Modul:Arguments -- Minimalna, stabilna i kompatibilna verzija za sve MediaWiki module local p = {} local function trim(s) return (mw.text.trim(s or "")) end -- Glavna funkcija koju drugi moduli pozivaju: -- local args = require('Module:Arguments').getArgs(frame) function p.getArgs(frame, options) options = options or {} local parentOnly = options.parentOnly local args = {} -- Spaja argumente iz frame.args i parent.args local...«
Oznaka: zamijenjeno preko 90 % teksta
mNema sažetka uređivanja
 
Redak 1: Redak 1:
-- Modul:Arguments
-- Modul:Arguments
-- Minimalna, stabilna i kompatibilna verzija za sve MediaWiki module
-- Ova verzija popravlja grešku s povratnom vrijednosti (args vs arg)
 
local p = {}
local p = {}


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


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


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


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


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


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


return p
return p

Posljednja izmjena od 15. travanj 2026. u 13:39

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