Modul:Arguments: razlika između inačica
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 | ||
-- | -- 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 | if type(s) == "string" then | ||
return (mw.text.trim(s)) | |||
end | |||
return s | |||
end | end | ||
-- Glavna funkcija koju drugi moduli | -- 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 = {} | ||
-- | -- 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 | ||
local v_trimmed = trim(v) | |||
if | if v_trimmed ~= "" then | ||
args[k] = | args[k] = v_trimmed | ||
end | end | ||
else | |||
args[k] = v | |||
end | end | ||
end | end | ||
end | end | ||
-- | -- 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 | ||
-- | -- 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
-- 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