Module:Pp-move-indef: Difference between revisions
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 is subject to page protection. It is a highly visible module in use by a very large number of pages, or is substituted very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is protected from editing. |
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:
- Category:Wikipedia indefinitely move-protected pages
- Category:Wikipedia move-protected talk pages
- Category:Wikipedia move-protected user and user talk pages
- Category:Wikipedia move-protected project pages
- Category:Wikipedia move-protected portals
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