Bước tới nội dung

Mô đun:Copied

Bách khoa toàn thư mở Wikipedia
local MessageBox = require('Module:Message box')local p = {}local function singleText(args)	local from_oldid = args["from_oldid"] or args["from_oldid1"] or ""	local from = args["from"] or args["from1"] or ""	local to = args["to"] or args["to1"] or ""	local date = args["date"] or args["date1"] or ""	local afd = args["afd"] or args["afd1"] or ""	local merge = args["merge"] or args["merge1"] or ""	local text = "Văn bản và/hoặc các sáng tạo nội dung từ" 	if not (from_oldid == "") then		text = string.format("%s [%s phiên bản này] của", text, tostring(mw.uri.fullUrl(from, {oldid=from_oldid} )))	end	text = string.format("%s [[%s]]",text,from)	if (merge == "yes") or not (afd == "") then		text = string.format("%s đã được hợp thành",text)	else 		text = string.format("%s đã được sao chép hoặc di chuyển sang",text) 	end 	if (merge == "yes") and (to == "") then		text = string.format("%s [[%s:%s]]",text,mw.title.getCurrentTitle().nsText,mw.title.getCurrentTitle().text) --If no merge target given assume current page is the target	else 		text = string.format("%s [[%s]]",text,to)	end 	local diff = args["diff"] or args["diff1"]	local to_diff = args["to_diff"] or args["to_diff1"]	local to_oldid = args["to_oldid"] or args["to_oldid1"] 	if (diff) then		text = string.format("%s với [%s thay đổi này]",text,diff)	elseif (to_oldid or to_diff) then	local to_diff2 = args["to_diff"] or args["to_diff1"] or "prev"	local to_oldid2 = args["to_oldid"] or args["to_oldid1"] or ""		text = string.format("%s với [%s thay đổi này]",text,tostring(mw.uri.fullUrl(to, {diff=to_diff or "prev", oldid = to_oldid or ""} )))	end	if not (date == "") then		text = string.format("%s vào hồi %s",text,date)	end	if not (afd == "") then		if (mw.ustring.match(afd, "Wikipedia:", 1 )) then --If no venue is given add AfD prefix			text = string.format("%s sau khi bị [[%s|biểu quyết xóa]]",text,afd)		else			text = string.format("%s sau khi bị [[Wikipedia:Biểu quyết xoá bài/%s|biểu quyết xóa]]",text,afd)		end	end	text = string.format("%s.",text) -- Finish first sentance 	text = string.format("%s [%s Lịch sử] trang cũ giờ đây phục vụ mục đích [[WP:Sao chép trong Wikipedia|ghi công đóng góp]] tại trang sau, và không thể được xóa chừng nào trang sau còn tồn tại.",text,tostring(mw.uri.fullUrl(from,{action="history"}) or ""))	return textendlocal function row(args, i)	local text = ""	local afd = args["afd" .. i]	if (afd or args["merge" .. i]) then		text = string.format("%s\n*Merged",text)	else 		text = string.format("%s\n*Copied",text)	end	local from = args["from" .. i] or ""	text = string.format("%s [%s %s] (",text,tostring(mw.uri.fullUrl(from, {redirect = "no"} )),from)	local from_oldid = args["from_oldid" .. i]	if (from_oldid) then		text = string.format("%s[%s oldid], ",text,tostring(mw.uri.fullUrl(from, {oldid = from_oldid} )))	end		local to = args["to".. i] or ""	text = string.format("%s[%s history]) → [[%s]]",text,tostring(mw.uri.fullUrl(from, {action = "history"} )), to)		local diff = args["diff" .. i]	if (diff) then		text = string.format("%s ([%s diff])",text,diff)	elseif (args["to_oldid" .. i] or args["to_diff".. i]) then		local to_diff = args["to_diff".. i] or "prev"		local to_oldid = args["to_oldid" .. i] or ""		text = string.format("%s ([%s diff])",text,tostring(mw.uri.fullUrl(to, {diff=to_diff, oldid = to_oldid} )))	end	local date = args["date" .. i]	if (date) then		text = string.format("%s on %s",text,date)	end	if (afd) then		if (mw.ustring.match(afd, "Wikipedia:", 1 )) then --If no venue is given add AfD prefix			text = string.format("%s after being [[%s|nominated for deletion]]",text,afd)		else			text = string.format("%s after being [[Wikipedia:Articles for deletion/%s|nominated for deletion]]",text,afd)		end	end	if (not (args["to_oldid" .. i] or args["to_diff".. i])) then		text = string.format("%s[[Category:Wikipedia pages using copied template without oldid]]",text)	end		return textendlocal function list(args)	local text = ""	local from1 = args["from1"]	if (from1) then --Support from1 and from in case of multiple rows		text = string.format("%s%s",text,row(args, 1))	else		text = string.format("%s%s",text,row(args, ""))	end	local i = 2	while i > 0 do		if (args["from" .. i]) then 			text = string.format("%s%s",text,row(args, i))			i = i + 1 --Check if from(i+1) exist		else			i = - 1 --Break if fromi doesn't exist		end	end	return textend	local function multiText(args)	local pageType	if (mw.title.getCurrentTitle():inNamespace(0)) then		pageType = "article"	else		pageType = "page"	end		local historyList = list(args)	if (args["collapse"] == 'yes') then		local collapsedText = '<table style="width:100%%; background: transparent;" class="collapsible collapsed">\n<tr><th>Copied pages:</th></tr>\n<tr><td> %s </td></tr></table>'		historyList = string.format(collapsedText, historyList)	end	local text = "Text has been copied to or from this %s; see the list below. The source pages now serve to [[WP:Copying within Wikipedia|provide attribution]] for the content in the destination pages and must not be deleted so long as the copies exist. For attribution and to access older versions of the copied text, please see the history links below. %s"	text = string.format(text, pageType, historyList)	return textendlocal function BannerText(args)	--Checks if there are multiple rows	local text	local from2 = args["from2"]	if (from2) then		text = multiText(args)	elseif (not from2) then		text = singleText(args)	end	return textendlocal function renderBanner(args)	return MessageBox.main('tmbox', {		small = args["small"],		image = '[[File:Splitsection.svg|50px]]',		text = BannerText(args)	})endlocal function categories(args)	local to_oldid = args["to_oldid"] or args["to_diff"] or args["diff"]	local from_oldid = args["from_oldid"]	local text = "[[Category:Wikipedia pages using copied template]]" 	if ((not from_oldid) or (not to_oldid)) then		text = string.format("%s[[Category:Wikipedia pages using copied template without oldid]]",text)	end	return textendfunction p.main(frame)	local getArgs = require('Module:Arguments').getArgs	local args = getArgs(frame)	return renderBanner(args) .. categories(args)endreturn p