Modul:Protection banner/documentation

IMT HilfeWiki - das Wiki
< Modul:Protection banner
Version vom 7. Oktober 2014, 11:50 Uhr von mw>Oetterer (Schützte „Modul:Protection banner/documentation“: Häufig eingebundenes Modul ([Bearbeiten=Nur Administratoren erlauben] (unbeschränkt) [Verschieben=Nur Administratoren erlauben] (unbeschränkt)))
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Documentation icon Module documentation


-- This module generates documentation for [[Module:Protection banner]].

local class = require('Module:Middleclass').class

--------------------------------------------------------------------------------
-- Documentation class
--------------------------------------------------------------------------------

local Documentation = class('Documentation')

function Documentation:initialize(mainCfg, docCfg)
	self._mainCfg = mainCfg
	self._docCfg = docCfg
end

function Documentation:makeReasonTable()
	-- Get the data from the cfg.banners table.
	local rowData = {}
	for action, reasonTables in pairs(self._mainCfg.banners) do
		for reason, t in pairs(reasonTables) do
			rowData[#rowData + 1] = {
				reason = reason,
				action = action,
				description = t.description
			}
		end
	end

	-- Sort the table into alphabetical order, first by action and then by
	-- reason.
	table.sort(rowData, function (t1, t2)
		if t1.action == t2.action then
			return t1.reason < t2.reason
		else
			return t1.action < t2.action
		end
	end)
	
	-- Assemble a wikitable of the data.
	local ret = {}
	ret[#ret + 1] = '{| class="wikitable"'
	if #rowData < 1 then
		ret[#ret + 1] = '|-'
		ret[#ret + 1] = string.format(
			'| colspan="3" | %s',
			self._docCfg['documentation-blurb-noreasons']
		)
	else
		-- Header
		ret[#ret + 1] = '|-'
		ret[#ret + 1] = string.format(
			'! %s\n! %s\n! %s',
			self._docCfg['documentation-heading-reason'],
			self._docCfg['documentation-heading-action'],
			self._docCfg['documentation-heading-description']
		)
		-- Rows
		for _, t in ipairs(rowData) do
			ret[#ret + 1] = '|-'
			ret[#ret + 1] = string.format(
				'| %s\n| %s\n| %s',
				t.reason,
				t.action,
				t.description or ''
			)
		end
	end
	ret[#ret + 1] = '|}'
	
	return table.concat(ret, '\n')
end

--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------

local p = {}

function p.reasonTable()
	local mainCfg = require('Module:Protection banner/config')
	local docCfg = require('Module:Protection banner/documentation/config')
	local documentationObj = Documentation:new(mainCfg, docCfg)
	return documentationObj:makeReasonTable()
end

return p
Cookies helfen uns bei der Bereitstellung des IMT HilfeWikis. Bei der Nutzung vom IMT HilfeWiki werden die in der Datenschutzerklärung beschriebenen Cookies gespeichert.