پودمان: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 = {} 	obj.args = args 	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() 	local title = mw.title.getCurrentTitle() 	if not title.isTalkPage and (title.nsText .. ':' .. title.baseText) ~= "ویکی‌پدیا:درخواست محافظت صفحه" and not self.demo then 		return '<span class="error">خطا: درخواست‌های ویرایش حفاظت‌شده فقط می‌توانند در صفحه بحث ایجاد شوند.</span>[[رده:صفحه‌های غیر بحثی که درخواست ویرایش در صفحه حفاظت‌شده دارند]]' 	end  	-- String together page names provided 	local titles = {} 	for k, v in pairs(self.args) do 		if type(k) == 'number' then 			table.insert(titles, self.args[k]) 		end 	end 	local pagesText 	if #titles == 0 then 		pagesText = '' 	elseif #titles == 1 and mw.title.getCurrentTitle().subjectPageTitle.fullText == titles[1] then 		pagesText = '' 	else  		for i, v in pairs(titles) do 		    if i == 1 then 		        pagesText = ' در [[:' .. v .. ']]' 		    elseif i == #titles then 		        pagesText = pagesText .. ' و [[:' .. v .. ']]' 		    else 		        pagesText = pagesText .. '، [[:' .. v .. ']]' 		    end 		end 	end 	 	self:setArg('smalltext', "این [[ویکی‌پدیا:درخواست‌های ویرایش|درخواست ویرایش]] " .. pagesText .. 		" پاسخ داده شده‌است. <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 	-- برای فارسی‌سازی بهتر، پارامترهای «پاسخ‌داده‌شده» و «پاسخ» نیز به پودمان افزوده شده‌اند 	if not yesno(args.answered or args.ans or 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)