<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://salisford.net/index.php?action=history&amp;feed=atom&amp;title=Module%3AOld_XfD_multi</id>
	<title>Module:Old XfD multi - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://salisford.net/index.php?action=history&amp;feed=atom&amp;title=Module%3AOld_XfD_multi"/>
	<link rel="alternate" type="text/html" href="https://salisford.net/index.php?title=Module:Old_XfD_multi&amp;action=history"/>
	<updated>2026-06-15T22:44:14Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://salisford.net/index.php?title=Module:Old_XfD_multi&amp;diff=652&amp;oldid=prev</id>
		<title>Cascadia: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://salisford.net/index.php?title=Module:Old_XfD_multi&amp;diff=652&amp;oldid=prev"/>
		<updated>2023-04-05T14:39:07Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:39, 5 April 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Cascadia</name></author>
	</entry>
	<entry>
		<id>https://salisford.net/index.php?title=Module:Old_XfD_multi&amp;diff=651&amp;oldid=prev</id>
		<title>wp&gt;Pppery: Update per edit request</title>
		<link rel="alternate" type="text/html" href="https://salisford.net/index.php?title=Module:Old_XfD_multi&amp;diff=651&amp;oldid=prev"/>
		<updated>2021-12-18T18:18:30Z</updated>

		<summary type="html">&lt;p&gt;Update per edit request&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local yesno = require('Module:Yesno')&lt;br /&gt;
local mMessageBox = require('Module:Message box')&lt;br /&gt;
local TEMPLATE_PAGE = 'Template:Old XfD multi'&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
-- Helper functions&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function exists(page)&lt;br /&gt;
	local success, exists = pcall(function ()&lt;br /&gt;
		local title = mw.title.new(page)&lt;br /&gt;
		return title.exists&lt;br /&gt;
	end)&lt;br /&gt;
	return success and exists&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getAfdPage(page)&lt;br /&gt;
	if page and mw.title.new(page) then&lt;br /&gt;
		if mw.title.new(page).namespace ~= 0 then&lt;br /&gt;
			return page&lt;br /&gt;
		else&lt;br /&gt;
			return 'Wikipedia:Articles for deletion/' .. page&lt;br /&gt;
		end&lt;br /&gt;
	else return nil&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getVfdPage(page)&lt;br /&gt;
	if page and mw.title.new(page) then&lt;br /&gt;
		if mw.title.new(page).rootPageTitle.fullText == 'Wikipedia:Votes for deletion' then&lt;br /&gt;
			return page&lt;br /&gt;
		else&lt;br /&gt;
			return 'Wikipedia:Votes for deletion/' .. page&lt;br /&gt;
		end&lt;br /&gt;
	else return nil&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeWikilink(page, display)&lt;br /&gt;
	display = display or 'discussion'&lt;br /&gt;
	if page then&lt;br /&gt;
		return string.format('[[%s|%s]]', page, display)&lt;br /&gt;
	else&lt;br /&gt;
		return display --probably a bad title&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeUrlLink(page, display)&lt;br /&gt;
	display = display or 'discussion'&lt;br /&gt;
	return string.format('[%s %s]', page, display)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function pageTypeName(title)&lt;br /&gt;
	local display = mw.ustring.lower(title.subjectNsText)&lt;br /&gt;
	local pageTypes = {&lt;br /&gt;
		[''] = 'article',&lt;br /&gt;
		['user'] = 'user page',&lt;br /&gt;
		['wikipedia'] = 'project page',&lt;br /&gt;
		['mediawiki'] = 'interface page',&lt;br /&gt;
		['help'] = 'help page'&lt;br /&gt;
	}&lt;br /&gt;
	if pageTypes[display] then display = pageTypes[display] end&lt;br /&gt;
	return display&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function cleanupTitle(title)&lt;br /&gt;
	if not title then return title end&lt;br /&gt;
	title = mw.uri.decode(title, 'PATH')&lt;br /&gt;
	title = string.gsub(title, '|.*', '')&lt;br /&gt;
	title = string.gsub(title, '[%[%]{}]', '')&lt;br /&gt;
	return title&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
-- OldAfdMulti class&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local OldAfdMulti = {}&lt;br /&gt;
OldAfdMulti.__index = OldAfdMulti&lt;br /&gt;
&lt;br /&gt;
function OldAfdMulti.new(args)&lt;br /&gt;
	local self = setmetatable({}, OldAfdMulti)&lt;br /&gt;
	self.currentTitle = mw.title.getCurrentTitle()&lt;br /&gt;
&lt;br /&gt;
	-- Preprocess the row args for easier looping.&lt;br /&gt;
	self.rowData = {}&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		if type(k) == 'string' then&lt;br /&gt;
			local prefix, num = k:match('^(.-)([1-9][0-9]*)$')&lt;br /&gt;
			if prefix and num then&lt;br /&gt;
				num = tonumber(num)&lt;br /&gt;
				if prefix == 'result' or&lt;br /&gt;
					prefix == 'date' or&lt;br /&gt;
					prefix == 'page' or&lt;br /&gt;
					prefix == 'link' or&lt;br /&gt;
					prefix == 'caption' or&lt;br /&gt;
					prefix == 'votepage' or&lt;br /&gt;
					prefix == 'merge'&lt;br /&gt;
				then&lt;br /&gt;
					self.rowData[num] = self.rowData[num] or {}&lt;br /&gt;
					self.rowData[num][prefix] = v&lt;br /&gt;
					if v and v ~= '' and prefix=='merge' then&lt;br /&gt;
						self.isMerge = true&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- Set aliases for parameters ending in &amp;quot;1&amp;quot;.&lt;br /&gt;
	if self.rowData[1] then&lt;br /&gt;
		self.rowData[1].result = self.rowData[1].result or args.result&lt;br /&gt;
		self.rowData[1].date = self.rowData[1].date or args.date&lt;br /&gt;
		self.rowData[1].page = self.rowData[1].page or args.page&lt;br /&gt;
		self.rowData[1].votepage = self.rowData[1].votepage or args.votepage&lt;br /&gt;
		self.rowData[1].link = self.rowData[1].link or args.link&lt;br /&gt;
		self.rowData[1].caption = self.rowData[1].caption or args.caption&lt;br /&gt;
		self.rowData[1].merge = self.rowData[1].merge or args.merge&lt;br /&gt;
	elseif args.result or&lt;br /&gt;
		args.date or&lt;br /&gt;
		args.page or&lt;br /&gt;
		args.votepage or&lt;br /&gt;
		args.link or&lt;br /&gt;
		args.caption or&lt;br /&gt;
		args.merge&lt;br /&gt;
	then&lt;br /&gt;
		self.rowData[1] = {&lt;br /&gt;
			result = args.result,&lt;br /&gt;
			date = args.date,&lt;br /&gt;
			page = args.page,&lt;br /&gt;
			votepage = args.votepage,&lt;br /&gt;
			link = args.link,&lt;br /&gt;
			caption = args.caption,&lt;br /&gt;
			merge = args.merge&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
	-- Remove any gaps in the array we made.&lt;br /&gt;
	local function compressSparseArray(t)&lt;br /&gt;
		local ret, nums = {}, {}&lt;br /&gt;
		for num, data in pairs(t) do&lt;br /&gt;
			nums[#nums + 1] = num&lt;br /&gt;
		end&lt;br /&gt;
		table.sort(nums)&lt;br /&gt;
		for i, num in ipairs(nums) do&lt;br /&gt;
			ret[i] = t[num]&lt;br /&gt;
		end&lt;br /&gt;
		return ret&lt;br /&gt;
	end&lt;br /&gt;
	self.rowData = compressSparseArray(self.rowData)&lt;br /&gt;
	-- Set aliases that apply to all of the data tables.&lt;br /&gt;
	for i, data in ipairs(self.rowData) do&lt;br /&gt;
		data.page = data.page or data.votepage&lt;br /&gt;
		data.page = cleanupTitle(data.page)&lt;br /&gt;
		data.votepage = nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Set collapsedness&lt;br /&gt;
	self.collapse = tonumber(args.collapse)&lt;br /&gt;
	if not self.collapse then&lt;br /&gt;
		self.collapse = yesno(args.collapse)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Set other properties&lt;br /&gt;
	self.isNumbered = yesno(args.numbered)&lt;br /&gt;
	self.isSmall = yesno(args.small)&lt;br /&gt;
	self.pageType = args.type or pageTypeName(self.currentTitle)&lt;br /&gt;
	if args.merge and args.merge ~= '' then&lt;br /&gt;
		self.isMerge = true&lt;br /&gt;
	end&lt;br /&gt;
	self.deletion = args.deletion&lt;br /&gt;
	&lt;br /&gt;
	return self&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function OldAfdMulti:renderResult(result)&lt;br /&gt;
	return result or &amp;quot;'''Keep'''&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function OldAfdMulti:renderDate(date)&lt;br /&gt;
	if date then&lt;br /&gt;
		return date&lt;br /&gt;
	else&lt;br /&gt;
		self.hasMissingDate = true&lt;br /&gt;
		return string.format(&lt;br /&gt;
			'&amp;lt;sup&amp;gt;%s[[%s|date missing]]%s&amp;lt;/sup&amp;gt;',&lt;br /&gt;
			mw.text.nowiki('['),&lt;br /&gt;
			TEMPLATE_PAGE,&lt;br /&gt;
			mw.text.nowiki(']')&lt;br /&gt;
		)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function OldAfdMulti:renderPageText(linkFunc, page, caption)&lt;br /&gt;
	return string.format(', see %s.', linkFunc(page, caption))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function OldAfdMulti:renderRow(result, date, link, merge)&lt;br /&gt;
	local result = self:renderResult(result)&lt;br /&gt;
	local date = self:renderDate(date)&lt;br /&gt;
	local mergeText = ''&lt;br /&gt;
	if merge and merge ~= '' then&lt;br /&gt;
		mergeText = string.format('Merge with [[:%s]]: ', merge)&lt;br /&gt;
	end&lt;br /&gt;
	if link then&lt;br /&gt;
		return string.format('%s%s, %s, see %s.', mergeText, result, date, link)&lt;br /&gt;
	else&lt;br /&gt;
		return string.format('%s%s, %s', mergeText, result, date)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function OldAfdMulti:renderFirstRow(data)&lt;br /&gt;
	local link&lt;br /&gt;
	if data.link then&lt;br /&gt;
		link = makeUrlLink(data.link, data.caption)&lt;br /&gt;
	else&lt;br /&gt;
		local page = data.page or self.currentTitle.text&lt;br /&gt;
		link = makeWikilink(getAfdPage(page), data.caption)&lt;br /&gt;
	end&lt;br /&gt;
	return self:renderRow(data.result, data.date, link, data.merge)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function OldAfdMulti:renderSubsequentRow(data)&lt;br /&gt;
	local link&lt;br /&gt;
	if data.page then&lt;br /&gt;
		link = makeWikilink(getAfdPage(data.page), data.caption)&lt;br /&gt;
	elseif data.link then&lt;br /&gt;
		link = makeUrlLink(data.link, data.caption)&lt;br /&gt;
	end&lt;br /&gt;
	return self:renderRow(data.result, data.date, link, data.merge)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function OldAfdMulti:renderRows()&lt;br /&gt;
	local root = mw.html.create()&lt;br /&gt;
	local nRows = #self.rowData&lt;br /&gt;
	local i = nRows&lt;br /&gt;
&lt;br /&gt;
	local nCollapsedRows&lt;br /&gt;
	if type(self.collapse) == 'number' then&lt;br /&gt;
		nCollapsedRows = self.collapse&lt;br /&gt;
	elseif self.collapse then&lt;br /&gt;
		nCollapsedRows = nRows&lt;br /&gt;
	else&lt;br /&gt;
		nCollapsedRows = 0&lt;br /&gt;
	end&lt;br /&gt;
	local hasNormalRows = nRows - nCollapsedRows &amp;gt; 0&lt;br /&gt;
&lt;br /&gt;
	local function makeList(isCollapsed, header)&lt;br /&gt;
		local tableRoot = root:tag('table')&lt;br /&gt;
		tableRoot&lt;br /&gt;
			:addClass(isCollapsed and 'mw-collapsible mw-collapsed' or nil)&lt;br /&gt;
			:css('width', '100%')&lt;br /&gt;
			:css('background-color', '#f8eaba')&lt;br /&gt;
		if header then&lt;br /&gt;
			tableRoot&lt;br /&gt;
				:tag('tr')&lt;br /&gt;
					:tag('th')&lt;br /&gt;
						:wikitext(header)&lt;br /&gt;
		end&lt;br /&gt;
		return tableRoot&lt;br /&gt;
			:tag('tr')&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:tag(self.isNumbered and 'ol' or 'ul')&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local function renderRow(html, method, data)&lt;br /&gt;
		html&lt;br /&gt;
			:tag('li')&lt;br /&gt;
				:attr('value', self.isNumbered and i or nil)&lt;br /&gt;
				:wikitext(self[method](self, data))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Render normal rows&lt;br /&gt;
	if hasNormalRows then&lt;br /&gt;
		local normalList = makeList(false)&lt;br /&gt;
		while i &amp;gt; 1 and i &amp;gt; nCollapsedRows do&lt;br /&gt;
			renderRow(normalList, 'renderSubsequentRow', self.rowData[i])&lt;br /&gt;
			i = i - 1&lt;br /&gt;
		end&lt;br /&gt;
		if i == 1 and i &amp;gt; nCollapsedRows then&lt;br /&gt;
			renderRow(normalList, 'renderFirstRow', self.rowData[i])&lt;br /&gt;
			i = i - 1&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Render collapsed rows&lt;br /&gt;
	if nCollapsedRows &amp;gt; 0 then&lt;br /&gt;
		local header&lt;br /&gt;
		if hasNormalRows then&lt;br /&gt;
			header = 'Older deletion discussions:'&lt;br /&gt;
		elseif nRows &amp;gt; 1 then&lt;br /&gt;
			header = 'Deletion discussions:'&lt;br /&gt;
		else&lt;br /&gt;
			header = 'Deletion discussion:'&lt;br /&gt;
		end&lt;br /&gt;
		local collapsedList = makeList(true, header)&lt;br /&gt;
		while i &amp;gt; 1 do&lt;br /&gt;
			renderRow(collapsedList, 'renderSubsequentRow', self.rowData[i])&lt;br /&gt;
			i = i - 1&lt;br /&gt;
		end&lt;br /&gt;
		renderRow(collapsedList, 'renderFirstRow', self.rowData[i])&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return tostring(root)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function OldAfdMulti:renderFirstRowOnly()&lt;br /&gt;
	local data = self.rowData[1] or {}&lt;br /&gt;
	local caption = data.caption or 'the discussion'&lt;br /&gt;
	local link&lt;br /&gt;
	if data.link then&lt;br /&gt;
		link = makeUrlLink(data.link, caption)&lt;br /&gt;
	else&lt;br /&gt;
		local page = data.page or self.currentTitle.text&lt;br /&gt;
		if exists(getAfdPage(page)) then&lt;br /&gt;
			link = makeWikilink(getAfdPage(page), caption)&lt;br /&gt;
		elseif exists(getVfdPage(page)) then&lt;br /&gt;
			link = makeWikilink(getVfdPage(page), caption)&lt;br /&gt;
		else&lt;br /&gt;
			link = caption -- Make this an error?&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local result = self:renderResult(data.result or &amp;quot;'''keep'''&amp;quot;)&lt;br /&gt;
	return string.format(&lt;br /&gt;
		'The result of %s was %s.',&lt;br /&gt;
		link, result&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function OldAfdMulti:renderBannerText()&lt;br /&gt;
	local nRows = #self.rowData&lt;br /&gt;
	local ret = {}&lt;br /&gt;
	if self.deletion then&lt;br /&gt;
		if nRows &amp;lt; 1 or not self.rowData[1].date then&lt;br /&gt;
			ret[#ret + 1] = string.format(&lt;br /&gt;
				'This %s was previously nominated for %s.',&lt;br /&gt;
				self.pageType,&lt;br /&gt;
				self.deletion&lt;br /&gt;
			)&lt;br /&gt;
		elseif nRows == 1 and self.rowData[1].date then&lt;br /&gt;
			ret[#ret + 1] = string.format(&lt;br /&gt;
				'This %s was nominated for %s on %s.',&lt;br /&gt;
				self.pageType,&lt;br /&gt;
				self.deletion,&lt;br /&gt;
				self.rowData[1].date&lt;br /&gt;
			)&lt;br /&gt;
		else&lt;br /&gt;
			ret[#ret + 1] = string.format(&lt;br /&gt;
				'This %s was nominated for %s.',&lt;br /&gt;
				self.pageType,&lt;br /&gt;
				self.deletion&lt;br /&gt;
			)&lt;br /&gt;
		end&lt;br /&gt;
	elseif self.isMerge then&lt;br /&gt;
		if nRows &amp;lt; 1 or not self.rowData[1].date then&lt;br /&gt;
			ret[#ret + 1] = string.format(&lt;br /&gt;
				'This %s was considered for [[Wikipedia:Deletion policy#Merging|merging]] with %s.',&lt;br /&gt;
				self.pageType,&lt;br /&gt;
				self.rowData[1].merge&lt;br /&gt;
			)&lt;br /&gt;
		elseif nRows == 1 and self.rowData[1].date then&lt;br /&gt;
			ret[#ret + 1] = string.format(&lt;br /&gt;
				'This %s was considered for [[Wikipedia:Deletion policy#Merging|merging]] with [[:%s]] on %s.',&lt;br /&gt;
				self.pageType,&lt;br /&gt;
				self.rowData[1].merge,&lt;br /&gt;
				self.rowData[1].date&lt;br /&gt;
			)&lt;br /&gt;
		else&lt;br /&gt;
			ret[#ret + 1] = string.format(&lt;br /&gt;
				'This %s was nominated for [[Wikipedia:Deletion policy|deletion]] or considered for [[Wikipedia:Deletion policy#Merging|merging]].',&lt;br /&gt;
				self.pageType&lt;br /&gt;
			)&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		if nRows &amp;lt; 1 or not self.rowData[1].date then&lt;br /&gt;
			ret[#ret + 1] = string.format(&lt;br /&gt;
				'This %s was previously nominated for [[Wikipedia:Deletion policy|deletion]].',&lt;br /&gt;
				self.pageType&lt;br /&gt;
			)&lt;br /&gt;
		elseif nRows == 1 and self.rowData[1].date then&lt;br /&gt;
			ret[#ret + 1] = string.format(&lt;br /&gt;
				'This %s was nominated for [[Wikipedia:Deletion policy|deletion]] on %s.',&lt;br /&gt;
				self.pageType,&lt;br /&gt;
				self.rowData[1].date&lt;br /&gt;
			)&lt;br /&gt;
		else&lt;br /&gt;
			ret[#ret + 1] = string.format(&lt;br /&gt;
				'This %s was nominated for [[Wikipedia:Deletion policy|deletion]].',&lt;br /&gt;
				self.pageType&lt;br /&gt;
			)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if nRows &amp;gt; 1 then&lt;br /&gt;
		ret[#ret + 1] = ' '&lt;br /&gt;
		if self.isSmall then&lt;br /&gt;
			ret[#ret + 1] = 'Review prior discussions if considering re-nomination:'&lt;br /&gt;
		else&lt;br /&gt;
			ret[#ret + 1] = 'Please review the prior discussions if you are considering re-nomination:'&lt;br /&gt;
		end&lt;br /&gt;
		ret[#ret + 1] = '\n'&lt;br /&gt;
		ret[#ret + 1] = self:renderRows()&lt;br /&gt;
	else&lt;br /&gt;
		ret[#ret + 1] = ' '&lt;br /&gt;
		ret[#ret + 1] = self:renderFirstRowOnly()&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(ret)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function OldAfdMulti:renderBanner()&lt;br /&gt;
	return mMessageBox.main('tmbox', {&lt;br /&gt;
		small = self.isSmall,&lt;br /&gt;
		type = 'notice',&lt;br /&gt;
		image = '[[File:Clipboard.svg|35px|Articles for deletion]]',&lt;br /&gt;
		smallimage = 'none',&lt;br /&gt;
		text = self:renderBannerText()&lt;br /&gt;
	})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function OldAfdMulti:renderTrackingCategories()&lt;br /&gt;
	local ret = {}&lt;br /&gt;
	if self.hasMissingDate and self.currentTitle.isTalkPage then&lt;br /&gt;
		ret[#ret + 1] = '[[Category:Old XfD multi templates with errors]]'&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(ret)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function OldAfdMulti:__tostring()&lt;br /&gt;
	return self:renderBanner() .. self:renderTrackingCategories()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
-- Exports&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	local afd = OldAfdMulti.new(args)&lt;br /&gt;
	return tostring(afd)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = require('Module:Arguments').getArgs(frame, {&lt;br /&gt;
		wrappers = TEMPLATE_PAGE&lt;br /&gt;
	})&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>wp&gt;Pppery</name></author>
	</entry>
</feed>