پودمان:Protected edit request/آزمایشی

از ویکی‌پدیا، دانشنامهٔ آزاد
-- برای فارسی‌سازی بهتر، بخش(هایی) از این پودمان تغییر یافته‌است، هنگام به‌روزرسانی به مستندات پودمان توجه کنید.
require('Module:No globals')

local yesno = require('Module:Yesno')
local makeMessageBox = require('Module:Message box').main
local getArgs

local activeBox -- lazily initialized if we get an active request

----------------------------------------------------------------------
-- Box class definition
----------------------------------------------------------------------

local box = {}
box.__index = box

function box.new(protectionType, args)
	local obj = {}
	setmetatable(obj, box)
	obj.tmboxArgs = {} -- Used to store arguments to be passed to tmbox by the box:export method.
	-- Set data fields.
	obj.tmboxArgs.attrs = { ['data-origlevel'] = protectionType }
	return obj
end

function box:setArg(key, value)
	-- This sets a value to be passed to tmbox.
	if key then
		self.tmboxArgs[key] = value
	end
end

function box:export()
	self:setArg('smalltext', "این [[ویکی‌پدیا:درخواست‌های ویرایش|درخواست ویرایش]] پاسخ داده شده‌است. مقدار پارامتر <code style=\"white-space: nowrap;\">&#124;پاسخ&#61;</code> را به '''خیر''' تغییر دهید تا درخواست‌تان مجدد فعال شود.")
	self:setArg('small', true)
	self:setArg('class', 'editrequest')
	return makeMessageBox('tmbox', self.tmboxArgs)
end

----------------------------------------------------------------------
-- Process arguments and initialise objects
----------------------------------------------------------------------

local p = {}

function p._main(protectionType, args)
	local boxType = box
	-- برای فارسی‌سازی بهتر، پارامتر args.answered به args['پاسخ‌داده‌شده'] تغییر یافته‌است
	if not yesno(args['پاسخ‌داده‌شده'] or args['پاسخ'], true) then
		if not activeBox then
			activeBox = require('Module:Protected edit request/active/آزمایشی')(box, yesno, makeMessageBox)
		end
		boxType = activeBox
	end
	local requestBox = boxType.new(protectionType, args)
	return requestBox:export()
end

local mt = {}

function mt.__index(t, k)
	if not getArgs then
		getArgs = require('Module:Arguments').getArgs
	end
	return function (frame)
	return t._main(k, getArgs(frame, {wrappers = {'الگو:ویرایش صفحه حفاظت‌شده', 'الگو:ویرایش صفحه نیمه‌حفاظت‌شده', 'الگو:ویرایش حفاظت‌شده', 'الگو:ویرایش نیمه‌حفاظت‌شده', 'الگو:ویرایش الگوی حفاظت‌شده'}}))
	end
end

return setmetatable(p, mt)