Module:Check for clobbered parameters: Difference between revisions
admin>Admin صفحهای تازه حاوی «local p = {} local function trim(s) return mw.ustring.match(s, '^%s*(.-)%s*$') end local function isnotempty(s) return s and mw.ustring.match(s, '%S') end function p.check(frame) local args = frame.args local pargs = frame:getParent().args local checknested = isnotempty(args['nested']) local delimiter = isnotempty(args['delimiter']) and args['delimiter'] or ';' local argpairs = {} for k, v in pairs(args) do if type(k) ==...» ایجاد کرد |
m 2 revisions imported |
||
| (One intermediate revision by the same user not shown) | |||
(No difference)
| |||
Latest revision as of 12:53, November 30, 2025
local p = {}
local function trim(s) return mw.ustring.match(s, '^%s*(.-)%s*$') end
local function isnotempty(s) return s and mw.ustring.match(s, '%S') end
function p.check(frame) local args = frame.args local pargs = frame:getParent().args local checknested = isnotempty(args['nested']) local delimiter = isnotempty(args['delimiter']) and args['delimiter'] or ';' local argpairs = {}
for k, v in pairs(args) do if type(k) == 'number' then local plist = mw.text.split(v, delimiter) local pfound = {} local count = 0 for ii, vv in ipairs(plist) do vv = trim(vv) if checknested and pargs[vv] or isnotempty(pargs[vv]) then count = count + 1 table.insert(pfound, vv) end end if count > 1 then table.insert(argpairs, pfound) end end end
local warnmsg = {}
local res =
local cat =
if args['cat'] and (
mw.ustring.match(args['cat'],'^[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]:') or
mw.ustring.match(args['cat'],'^رده:')
)
then
cat = args['cat']
end
local template = args['template'] and ' در ' .. args['template'] or
if #argpairs > 0 then
for i, v in ipairs( argpairs ) do
table.insert(
warnmsg,
mw.ustring.format(
'استفاده از بیش از یکی از پارامترهای زیر%s: %s.',
template,
table.concat(v, ', ')
)
)
if cat ~= then
res = res .. '' .. (v[1] == and ' ' or ) .. v[1] .. ''
end
end
end
if #warnmsg > 0 then
res = require('Module:If preview')._warning({
table.concat(warnmsg, '
')
}) .. res
end
return res
end
return p