Mô đun:Protected edit request

require('strict')

local yesno = require('Mô đun:Yesno')
local makeMessageBox = require('Mô đun: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()
	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 = ' thành [[:' .. 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 của bạn.")
	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()
end

local 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'}}))
	end
end

return setmetatable(p, mt)
Chúng tôi bán
Bài viết liên quan
Nhân vật Ryuunosuke - Sakurasou No Pet Na Kanojo
Nhân vật Ryuunosuke - Sakurasou No Pet Na Kanojo
Akasaka Ryuunosuke (赤坂 龍之介 - Akasaka Ryūnosuke) là bệnh nhân cư trú tại phòng 102 của trại Sakurasou. Cậu là học sinh năm hai của cao trung Suiko (trực thuộc đại học Suimei).
Nguồn gốc các loại Titan - Attack On Titan
Nguồn gốc các loại Titan - Attack On Titan
Tất cả Titan đều xuất phát từ những người Eldia, mang dòng máu của Ymir
Tổng hợp các thông tin về ReVanced
Tổng hợp các thông tin về ReVanced
ReVanced là team sẽ tiếp nối dự án của team Vanced - hỗ trợ tạo ra bản mod YouTube không quảng cáo cho mọi người
Review phim Nhật Thực Toàn Phần - Total Eclipse 1995
Review phim Nhật Thực Toàn Phần - Total Eclipse 1995
Phim xoay quanh những bức thư được trao đổi giữa hai nhà thơ Pháp thế kỷ 19, Paul Verlanie (David Thewlis) và Arthur Rimbaud (Leonardo DiCaprio)