Module:User

From Zelda Wiki, the Zelda encyclopedia
Jump to navigation Jump to search

local p = {}

local utilsError = require('Module:UtilsError')

function p.Main(frame)
	local args = frame.args
	local template = args[1] --The Template that is being used. This parameter does not take user input.
	local data = args[2] --User input
	local data2 = args[3] --Extra user input
	
	if (template == "Archive") then
        return string.format("<div style=\"display: flex; border: 5px solid; background-color: #236c96; border-color: #3a5a7a; text-align: center; border-radius: 25px;\">\n<div style=\"padding: 2px 10px; font-size: 120%%; font-weight: bold;\">''This page is an <span style=\"color: #9c9692\">archive</span> of an old Talk Page. The contents have been moved from another page to clear space and to preserve history, so this page is locked from editing. If you wish to ask about the corresponding page, or respond to an earlier message, you may direct any comments to the '''[[%s|current talk page]]'''. If you wish to refer to a message on this page, link to ''%s.''</div></div>", data, data2)
        
	elseif (template == "Archive List") then
		local archives = {}
		local archiveList = ""
		if (data ~= "") then --Error checks
			if ((tonumber(data) <= 0) == false) then
				for i=1,data do
					archives[i] = ("\n* [[/Archive " .. i .. "|Archive ".. i .. "]]")
				end
				for i=1,data do
					archiveList = (archiveList .. archives[i])
				end
				return string.format("{|class=\"messagebox\" style=\"display: flex; border: 4px solid #426787; color:#e6e6e6; background-color: #1d578b; float: right; border-radius:10px;\"\n|[[File:Zwlogo2dlarge.png|50px|center]]\n|-\n|<u>'''Archives of %s'''</u>\n|-\n|<small>%s</small>\n|}", data2, archiveList)
			else
				utilsError.warn("The first parameter must be a number greater than 0.")
			end
		else
			utilsError.warn("You must enter the number of archives in the first parameter.")
		end
	
	elseif (template == "Legacy User") then
		if (data == "User" or data  == "") then
			return string.format("<center><div style=\"display: flex; max-width: 625px; border: 5px solid; background-color: #5e5d5e; border-color: #000000; text-align: center; border-radius: 25px;\"><div style=\"font size=\"95%%\"><font size=\"5%%\"><u>'''Legacy User Page'''</u></font><br/>''This is a user page for a legacy account, which is a very old wiki account that has long been abandoned. This page is locked from editing as it's here to preserve history. If there are any problems with this page, please notify a [[Zelda Wiki:Staff List#Wiki Staff|Staff member]].</div></div></center>")
		elseif (data == "Talk") then
			return string.format("<center><div style=\"display: flex; max-width: 625px; border: 5px solid; background-color: #5e5d5e; border-color: #000000; text-align: center; border-radius: 25px;\"><div style=\"font size=\"95%%\"><font size=\"5%%\"><u>'''Legacy User Talk Page'''</u></font><br/>''This is a talk page for a legacy account, which is a very old wiki account that has long been abandoned. This page is locked from editing as it's here to preserve history. If you came here to send this user a message, you may instead notify a [[Zelda Wiki:Staff List#Wiki Staff|Staff member]] as this user will most-likely not respond.</div></div></center>")
		elseif (data == "Sandbox") then
			return string.format("<center><div style=\"display: flex; max-width: 625px; border: 5px solid; background-color: #5e5d5e; border-color: #000000; text-align: center; border-radius: 25px;\"><div style=\"font size=\"95%%\"><font size=\"5%%\"><u>'''Legacy User Sandbox'''</u></font><br/>''This is a user sandbox for a legacy account, which is a very old wiki account that has long been abandoned. This page is locked from editing as it's here to preserve history. If there are any problems with this page, please notify a [[Zelda Wiki:Staff List#Wiki Staff|Staff member]].</div></div></center>")
		else
			utilsError.warn("You entered an invalid value. Accepted values include User, Talk, or Sandbox.")
		end
	
	elseif (template == "Talk Page Notice") then
		local image, header, info
		if (data == "Controversial") then
			image = "[[File:TLoZ Fire Sprite.png|50px|link=]]"
			header = "Controversial Topic"
			info = "This series of messages involves a controverisal topic and discussions tend to get heated during debates like these. To prevent this, please direct any messages to {{Discord|channel= general}} or to the [http://zeldauniverse.net/forums/ Zelda Universe formus] unless you have ''substantial evidence'' to add to this discussion and intend only to find a resolution in the discussion."
		elseif (data == "Off-Topic") then
			image = "[[File:ZW Off-Topic Icon.svg|50px|link=]]"
			header = "Off-Topic Messages"
			info = "This series of messages doesn't relate to improving the page that this talk page corresponds to. Zelda Wiki is an encyclopedia, not a forum, so please direct these messages to the [http://zeldauniverse.net/forums/ Zelda Universe formus] or to the {{Discord|channel= general}}."
		elseif (data == "Theory") then
			image = "[[File:OoT Kaepora Gaebora Artwork.png|75px|link=]]"
			header = "Theory Warning"
			info = "This series of messages has become more focused on theorizing about the page in question instead of focusing on the factual information to improve the article. Please direct theories to the [http://zeldauniverse.net/forums/ Zelda Universe formus] or to the {{Discord|channel= general}}."
		elseif (data == "Unproductive") then
			image = "[[File:TMC Link Artwork 8.png|75px|link=]]"
			header = "Unproductive"
			info = "In the event of an [[Help:Glossary#Edit_war|edit war]], this talk page should be used to reach an ''agreement'' between the parties. This discussion has not been progressing and is becoming uncivil, and if it continues, the argument will be forcefully shut down and the participants will be banned, as per the [[Zelda Wiki:Rules|Rules]]. Please keep the discussions civil and focus on the goal of improving the article in question."
		else
			utilsError.warn("You entered an invalid value. See [[Template:Talk Page Notice#Usage|here]] for accepted values.")
		end
		return frame:expandTemplate({
			title = "Mbox",
			args = {
				image = image,
				header = header,
				info = frame:preprocess(info),
			}
		})
	end
end

return p