Bước tới nội dung

Mô đun:Protected edit request

Bách khoa toàn thư mở Wikipedia

require('strict')local yesno = require('Mô đun:Yesno')local makeMessageBox = require('Mô đun:Message box').mainlocal getArgslocal activeBox -- lazily initialized if we get an active request------------------------------------------------------------------------ Box class definition----------------------------------------------------------------------local box = {}box.__index = boxfunction 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 objendfunction box:setArg(key, value) -- This sets a value to be passed to tmbox. if key then self.tmboxArgs[key] = value endendfunction box:export() if not mw.title.getCurrentTitle().isTalkPage and not self.args.demo then return '<span class="error">Lỗi: Yêu cầu sửa đổi trang khóa chỉ có thể được thực hiện trên trang thảo luận.</span>[[Thể loại:Yêu cầu sửa đổi bản mẫu không phải trên trang thảo luận]]' 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 = ' cho [[:' .. v .. ']]' elseif i == #titles then pagesText = pagesText .. ' và [[:' .. v .. ']]' else pagesText = pagesText .. ', [[:' .. v .. ']]' end end end  self:setArg('smalltext', "[[Wikipedia:Yêu cầu sửa đổi|Yêu cầu sửa đổi]] này" .. pagesText .. " đã được trả lời. Sửa tham số <code style=\"white-space: nowrap;\">&#124;answered&#61;</code> hoặc <code style=\"white-space: nowrap;\">&#124;ans&#61;</code> hoặc <code style=\"white-space: nowrap;\">&#124;xong&#61;</code> thành '''chưa''' để kích hoạt lại yêu cầu.") 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.xong, true) and (args.answered or args.ans or args.xong) ~= 'xong' then if not activeBox then activeBox = require('Mô đun:Protected edit request/active')(box, yesno, makeMessageBox) end boxType = activeBox end local requestBox = boxType.new(protectionType, args) return requestBox:export()endlocal mt = {}function mt.__index(t, k) if not getArgs then getArgs = require('Mô đun:Arguments').getArgs end return function (frame) return t._main(k, getArgs(frame, {wrappers = {'Bản mẫu:Sửa trang khóa hẳn', 'Bản mẫu:Sửa trang hạn chế sửa đổi', 'Bản mẫu:Sửa trang nửa khóa', 'Bản mẫu:Sửa trang khóa bản mẫu', 'Bản mẫu:Sửa trang khóa mở rộng', 'Bản mẫu:Sửa trang khóa giao diện', 'Bản mẫu:Sửa trang khóa'}})) endendreturn setmetatable(p, mt)