مواد ڏانھن هلو

ماڊيول:Check for deprecated parameters

کليل ڄاڻ چيڪلي، وڪيپيڊيا مان


ماڊيول:Check for deprecated parameters کي ڪنهن سانچي سان شامل ڪري پراڻن (متروڪ) پيرا ميٽرن جي استعمال کي جانچڻ لاءِ استعمال ڪري سگهجي ٿو. جڏهن اهو متروڪ پيرا ميٽرن جو استعمال ڳولي ٿو ته اهو صفحي کي هڪ مخصوص زمري ۾ شامل ڪري ٿو ۽ پريويو (preview) دوران هڪ پيغام ڏيکاري ٿو.

نوٽ: متروڪ ٿيڻ جي نوعيت سبب، اڪثر هن ماڊيول کي لاڳو ڪندڙ سانچا موجود نه هوندا.

ٽيسٽ ڪرڻ لاءِ ڏسو ٽيسٽ ڪيسن جو نتيجو. مڪمل جاچ لاءِ هن کي عام ڏيک ۽ پريويو ٻنهي صورتن ۾ ڏسڻ گهرجي.

استعمال

[سنواريو]
{{#invoke:Check for deprecated parameters|check
| _category = {{main other|[[زمرو:صفحن ۾ TEMPLATENAME سان متروڪ پيرا ميٽرن جو استعمال|_VALUE_]]}}
| _remove = RemoveParam1; RemoveParam2
| old_param1 = new_param1 
| old_param2 = new_param2
| ....
| old_paramN = new_paramN
}}

پيرا ميٽر

[سنواريو]
  • |_category= - جڏهن ڪو نامعلوم پيرا ميٽر استعمال ٿئي ته ڇا ڪجي. عام طور تي ٽريڪنگ زمرو استعمال ڪيو ويندو آهي ته جيئن اهي صفحا گڏ ڪيا وڃن جيڪي متروڪ پيرا ميٽر استعمال ڪن ٿا، يا پوءِ غلطي ڏيکاري وڃي.
  • |_remove= - ; سان جدا ڪيل پيرا ميٽرن جي فهرست جيڪي صرف هٽايا وڃن، نه ته ڪنهن ٻئي سان تبديل ڪيا وڃن. مثال: |_remove=Param1; Param2; Param3
  • |ignoreblank= – ڊفالٽ طور، ماڊيول خالي ۽ غير خالي پيرا ميٽرن ۾ فرق نٿو ڪري. يعني |foo=x ۽ |foo= ٻنهي کي رپورٽ ڪيو ويندو. صرف غير خالي پيرا ميٽرن کي ٽريڪ ڪرڻ لاءِ |ignoreblank=1 استعمال ڪريو. جيڪڏهن توهان دليلن کي ماڊيول:Arguments سان صاف ڪريو ۽ پوءِ هن ماڊيول کي سڏيو، ته پوءِ هن پيرا ميٽر جي ضرورت نه پوندي، ڇاڪاڻ ته اهو ماڊيول پاڻ خالي دليلن کي نظرانداز ڪري ٿو.
  • |preview= – هڪ ڪسٽم پريويو خبرداري پيغام مقرر ڪريو. نوٽ ڪريو ته ڊفالٽ پيغام آهي
  • This is a redirect.
  1. چوريو سانچو:ڳاڙهو

پڻ ڏسو

[سنواريو]

-- 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
-- on the list
local p = {}

local function isnotempty(s)
	return s and mw.text.trim(s) ~= ''
end

local function scanValues(values,results,args,replaceTable)
    for k, v in pairs(values) do
		local c = args.category:gsub('_VALUE_', v)
		table.insert(results, c)
		if v == '' then
			-- Fix odd bug for | = which gets stripped to the empty string
			-- and breaks category links
			v = ' '
		end
        local replaceString = '"'..v..'". '
        local replaceValue = replaceTable and replaceTable[v]
        replaceString = replaceString..(replaceValue and 'Replace with "'..replaceValue..'".' or 'It should be removed.')
		local p = args.preview:gsub('_VALUE_',replaceString)
		table.insert(results, p )
	end
end

function p.check (frame)
	-- create the table of deprecated values and their matching new value
	return p._check(frame.args, frame:getParent().args, frame:getParent():getTitle())
end

local moduleParams = {ignoreblank=true, preview=true, _category=true, _remove=true}

function p._check(args, pargs, caller)
	local dep_values = {}
	for k, v in pairs(args) do
        if not moduleParams[k] then
			dep_values[k] = v
		end
	end

	-- Parse params to remove
	local removes = {}
	if args['_remove'] then
		for r in args['_remove']:gmatch("([^;]+)") do
            removes[mw.text.trim(r)] = 1
		end
	end
	
	-- loop over the parent args and see if any are deprecated
	local values = {}
	local remove_values = {}
	local ignoreblank = isnotempty(args['ignoreblank'])
	for k, v in pairs(pargs) do
        if not ignoreblank or isnotempty(v) then
			if dep_values[k] then
				table.insert(values, k)
			elseif removes[k] then
				table.insert(remove_values, k)
			end
		end
	end

    -- find out about calling context
    local title = mw.title.getCurrentTitle()

    -- create local defaulted arguments
    local category = args["_category"] or title.namespace == 0 and "[[Category:Pages with deprecated parameters]]" or ""
	local preview = args['preview'] or 'Page using [['..caller..']] with deprecated parameter _VALUE_'
	if isnotempty(preview) then
		preview = require('Module:If preview')._warning({preview})
	end
    local localArgs = {category=category,preview=preview}
	
    -- scan through values and remove_values and create output results
	local results = {}
    scanValues(values,results,localArgs,dep_values)
    scanValues(remove_values,results,localArgs)
	return table.concat(results)
end

return p