انتقل إلى المحتوى

وحدة:Check for unknown parameters

صفحة محمية
من ويكيبيديا، الموسوعة الحرة

-- This module may be used to compare the arguments passed to the parent
-- with a list of arguments, returning a specified result if an argument is
-- not on the list
localp={}

localfunctiontrim(s)
returns:match('^%s*(.-)%s*$')
end

localfunctionisnotempty(s)
returnsands:match('%S')
end

localfunctionclean(text)
-- Return text cleaned for display and truncated if too long.
-- Strip markers are replaced with dummy text representing the original wikitext.
localpos,truncated
localfunctiontruncate(text)
iftruncatedthen
return''
end
ifmw.ustring.len(text)>25then
truncated=true
text=mw.ustring.sub(text,1,25)..'...'
end
returnmw.text.nowiki(text)
end
localparts={}
forbefore,tag,remainderintext:gmatch('([^\127]*)\127[^\127]*%-(%l+)%-[^\127]*\127()')do
pos=remainder
table.insert(parts,truncate(before)..'<'..tag..'>...</'..tag..'>')
end
table.insert(parts,truncate(text:sub(posor1)))
returntable.concat(parts)
end

functionp._check(args,pargs)
iftype(args)~="table"ortype(pargs)~="table"then
-- TODO: error handling
return
end
localframe=mw.getCurrentFrame()
localtemplate=args['template']
iftemplate==''thentemplate=nilend

-- create the list of known args, regular expressions, and the return string
localknownargs={}
localregexps={}
fork,vinpairs(args)do
iftype(k)=='number'then
v=trim(v)
knownargs[v]=1
elseifk:find('^regexp[1-9][0-9]*$')then
table.insert(regexps,'^'..v..'$')
end
end

-- loop over the parent args, and make sure they are on the list
localignoreblank=isnotempty(args['ignoreblank'])
localshowblankpos=isnotempty(args['showblankpositional'])
localvalues={}
fork,vinpairs(pargs)do
iftype(k)=='string'andknownargs[k]==nilthen
localknownflag=false
for_,regexpinipairs(regexps)do
ifmw.ustring.match(k,regexp)then
knownflag=true
break
end
end
ifnotknownflagand(notignoreblankorisnotempty(v))then
table.insert(values,clean(k))
end
elseiftype(k)=='number'andknownargs[tostring(k)]==nilthen
localknownflag=false
for_,regexpinipairs(regexps)do
ifmw.ustring.match(tostring(k),regexp)then
knownflag=true
break
end
end
ifnotknownflagand(showblankposorisnotempty(v))then
table.insert(values,k..' = '..clean(v))
end
end
end

-- add results to the output tables
localres={}
if#values>0then
localunknown_text=args['unknown']or('[[تصنيف:صفحات تستخدم: '..(templateand('قالب '..template)or'قوالب ')..' بوسائط غير معروفة|_VALUE_]]')

ifframe:preprocess("{{REVISIONID}}")==""then
localpreview_text='<code style= "color:#cc0000" >| _VALUE_</code>'-- args['preview'] or ('الوسيط <span style= "color:#cc0000" ><strong>_VALUE_</strong></span>'.. (template and ('في [[قالب:'.. template.. ' ]]') or '').. ' غير مدعوم')
--# هذا القسم معطل لأجل تجميع الوسائط
-- if isnotempty(preview_text) then
-- preview_text = require('Module:If preview')._warning({preview_text})
-- elseif preview_text == nil then
-- preview_text = unknown_text
-- end
unknown_text=preview_text
end
for_,vinpairs(values)do
--#Added fix new line
v=v:gsub("\n*$ ","")
-- Fix odd bug for | = which gets stripped to the empty string and
-- breaks category links
ifv==''thenv=' 'end

-- avoid error with v = 'example%2' ( "invalid capture index" )
localr=unknown_text:gsub('_VALUE_',{_VALUE_=v})
table.insert(res,r)
end
end
--#Added Block
ifframe:preprocess("{{REVISIONID}}")==""then
localcac=table.concat(res,'\n*')
ifcac~=''then
if#res==1then
cac='الوسيط '..cac..(templateand('في [[قالب:'..template..' ]]')or'')..' غير مدعوم يجب تبديله أو حذفه، طالع صفحة توثيق القالب لمعرفة الوسائط البديلة.'
else
cac='الوسائط التالية '..(templateand('في [[قالب:'..template..' ]]')or'')..' غير مدعومة '..'\n*'..cac..'\nيجب تبديلها أو حذفها، طالع صفحة توثيق القالب لمعرفة الوسائط البديلة.'
end
cac=require('Module:If preview')._warning({cac})
end
returncac
else
returntable.concat(res)
end
end

functionp.check(frame)
localargs=frame.args
localpargs=frame:getParent().args
returnp._check(args,pargs)
end

returnp