Module:Pp-move-indef: Difference between revisions

From Zoophilia Wiki
Jump to navigationJump to search
en>Mr. Stradivarius
make fixes for when we are called from #invoke - the title parameter becomes a frame object
 
Created page with "-- This module implements Template:Pp-move-indef. local p = {} function p.main(title) if type(title) == 'string' then title = mw.title.new(title) elseif type(title)..."
(No difference)

Revision as of 20:02, 1 September 2020

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:

<syntaxhighlight lang="lua"> local ppMoveIndef = require('Module:Pp-move-indef').main </syntaxhighlight>

You can then use ppMoveIndef like this:

<syntaxhighlight lang="lua"> ppMoveIndef(title) </syntaxhighlight>

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)
	if type(title) == 'string' then
		title = mw.title.new(title)
	elseif type(title) ~= 'table' or not title.text or not title.getContent then
		-- The title parameter is absent or not a title object. It could be a
		-- frame object if we are being called from #invoke.
		title = mw.title.getCurrentTitle()
	end
	
	local level = title
		and title.protectionLevels
		and title.protectionLevels.move
		and title.protectionLevels.move[1]
	local namespace = title and 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