Module:Pp-move-indef

From blackwiki
Revision as of 01:22, 18 September 2014 by blackwiki>Mr. Stradivarius (test that protectionLevels is present)
Jump to navigation Jump to search

This module implements {{pp-move-indef}}. It is a protection template, but has no visible output, unlike other protection templates which output banners or padlock icons. The only output is a category.

If the page is move-protected with either full move protection or template move protection, the module outputs one of the following categories, depending on the namespace it is used in:

On pages that are not full-move-protected or template-move-protected, the module outputs Category:Wikipedia pages with incorrect protection templates.

Usage

From wikitext

The usual way to use this module from wikitext is with the {{pp-move-indef}} template. You can also use it from #invoke directly with the code {{#invoke:pp-move-indef|main}}. Neither of these take any parameters, and both only work on the current page.

From Lua

From Lua, load the module like this:

local ppMoveIndef = require('Module:Pp-move-indef').main

You can then use ppMoveIndef like this:

ppMoveIndef(title)

The title parameter is an optional title object, used for testing purposes. If no parameters are supplied the module works on the current page.


-- This module implements [[Template:Pp-move-indef]].

local p = {}

function p.main(title)
	title = title or mw.title.getCurrentTitle()
	if type(title) == 'string' then title = mw.title.new(title) end
	local level = title.protectionLevels and title.protectionLevels.move
	level = level and level[1]

	local namespace = title.namespace
	local category
	if level == 'sysop' or level == 'templateeditor' then
		if namespace == 2 or namespace == 3 then
			category = 'Wikipedia move-protected user and user talk pages'
		elseif namespace == 4 or namepace == 12 then
			category = 'Wikipedia move-protected project pages'
		elseif namespace == 100 then
			category = 'Wikipedia move-protected portals'
		elseif title.isTalkPage then
			category = 'Wikipedia move-protected talk pages'
		else
			category = 'Wikipedia indefinitely move-protected pages'
		end
	else
		category = 'Wikipedia pages with incorrect protection templates'
	end

	return string.format(
		'[[%s:%s|%s]]',
		mw.site.namespaces[14].name, -- "Category"
		category,
		title.text -- equivalent of {{PAGENAME}}
	)
end

return p