Izvor: Hrvatska internetska enciklopedija
Prijeđi na navigaciju
Prijeđi na pretraživanje
-- 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