Jump to content

Module:RfD: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Jackmcbarn (talk | contribs)
let this do the subst part too
Jackmcbarn (talk | contribs)
fix error and use safesubst
Line 38: Line 38:
-- called if the redirect up for discussion is being viewed
-- called if the redirect up for discussion is being viewed
p[''] = function(frame)
p[''] = function(frame)
return makeRfdNotice(frame.args) .. frame.args.content
return makeRfdNotice(frame.args) .. frame.args[1]
end
end


local substText = '{{#invoke:RfD|<includeonly>1</includeonly>|name = %s|%s\n'
local substText = '{{ {{{|safesubst:}}}#invoke:RfD|<includeonly>1</includeonly>|name = %s|%s\n'
.. '<!-- Do not use the "Rfd/core" template directly; the above line is generated by {{subst:Rfd}}. -->\n<!-- End of RFD message. Feel free to edit beyond this point. -->|\n%s\n}}'
.. '<!-- Do not use the "Rfd/core" template directly; the above line is generated by {{subst:Rfd}}. -->\n<!-- End of RFD message. Feel free to edit beyond this point. -->|\n%s\n}}'



Revision as of 22:25, 20 June 2014

local p = {}

local getTargetFromText
local messageBox

local rfdText = "'''The purpose of this redirect is currently being discussed by the Wikipedia community."
	.. " The outcome of the discussion may result in a change of this page, or possibly its deletion in accordance with Wikipedia's [[Wikipedia:Deletion policy|deletion policy]].''' <br />"
	.. " Please share your thoughts on the matter at '''[[Wikipedia:Redirects for discussion/Log/%s %s %s#%s|this redirect's entry]]''' on the [[Wikipedia:Redirects for discussion|Redirects for discussion]] page.<br />"
	.. "  '''Click on the link below''' to go to the current destination page.<br /><small>Please notify the good-faith creator and any main contributors of the redirect by placing <code>&#123;&#123;[[Wikipedia:Substitution|subst]]:[[Template:RFDNote|RFDNote]]&#124;%s&#125;&#125; &#126;&#126;&#126;&#126;</code> on their talk page.</small>"
	
local function makeRfdNotice(args)
	local currentTitle = mw.title.getCurrentTitle()
	if not messageBox then
		messageBox = require('Module:Message box')
	end
	local discussionPage = args.name and mw.text.trim(args.name)
	if discussionPage == '' then
		discussionPage = nil
	end
	return string.format('%s<span id="delete-reason" style="display:none;">%%5B%%5BWikipedia%%3ARedirects+for+discussion%%5D%%5D+debate+closed+as+delete</span>%s',
		messageBox.main('mbox', {
			type = 'delete',
			image = 'none',
			text = string.format(rfdText, args.year, args.month, args.day, discussionPage or currentTitle.prefixedText, currentTitle.prefixedText)
		}),
		args.category or string.format('[[Category:Redirects for discussion|%s]]', currentTitle.text)
	)
end

-- called if the redirect up for discussion is being transcluded
p['1'] = function(frame)
	if not getTargetFromText then
		getTargetFromText = require('Module:Redirect').getTargetFromText
	end
	return frame:getParent():preprocess(mw.title.new(getTargetFromText(frame.args[1])):getContent())
end

-- called if the redirect up for discussion is being viewed
p[''] = function(frame)
	return makeRfdNotice(frame.args) .. frame.args[1]
end

local substText = '{{ {{{|safesubst:}}}#invoke:RfD|<includeonly>1</includeonly>|name = %s|%s\n'
	.. '<!-- Do not use the "Rfd/core" template directly; the above line is generated by {{subst:Rfd}}. -->\n<!-- End of RFD message. Feel free to edit beyond this point. -->|\n%s\n}}'

-- called during subst when the template is initially placed on the page
function p.main(frame)
	local titleText
	if frame.args.name then
		titleText = mw.title.new(frame.args.name).prefixedText
	else
		titleText = mw.title.getCurrentTitle().prefixedText
	end
	local date = os.date('*t')
	local retval = string.format(substText, titleText, os.date('month = %B\n|day = %e\n|year = %Y\n|time = %R\n|timestamp = %Y%m%d%H%M%S'), frame.args[1])
	if mw.isSubsting() then
		return retval
	end
	return frame:expandTemplate{title = 'Template:Error:must be substituted', args = {'Rfd'}} .. frame:preprocess(retval)
end

return p