پودمان: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;\">|پاسخ=</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)