Editing Module:Protection banner/config

From MINR.ORG WIKI

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 4: Line 4:
  
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
--
 
 
--                                BANNER DATA
 
--                                BANNER DATA
--
 
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
  
--[[
+
-- PARAMETERS
-- Banner data consists of six fields:
 
-- * text - the main protection text that appears at the top of protection
 
--  banners.
 
-- * explanation - the text that appears below the main protection text, used
 
--  to explain the details of the protection.
 
-- * tooltip - the tooltip text you see when you move the mouse over a small
 
--  padlock icon.
 
-- * link - the page that the small padlock icon links to.
 
-- * alt - the alt text for the small padlock icon. This is also used as tooltip
 
--  text for the large protection banners.
 
-- * image - the padlock image used in both protection banners and small padlock
 
--  icons.
 
--
 
-- The module checks in three separate tables to find a value for each field.
 
-- First it checks the banners table, which has values specific to the reason
 
-- for the page being protected. Then the module checks the defaultBanners
 
-- table, which has values specific to each protection level. Finally, the
 
-- module checks the masterBanner table, which holds data for protection
 
-- templates to use if no data has been found in the previous two tables.
 
 
--
 
--
 
-- The values in the banner data can take parameters. These are specified
 
-- The values in the banner data can take parameters. These are specified
 
-- using ${TEXTLIKETHIS} (a dollar sign preceding a parameter name
 
-- using ${TEXTLIKETHIS} (a dollar sign preceding a parameter name
-- enclosed in curly braces).
+
-- enclosed in curly braces). Available parameters:
--
 
--                          Available parameters:
 
 
--
 
--
 
-- ${CURRENTVERSION} - a link to the page history or the move log, with the
 
-- ${CURRENTVERSION} - a link to the page history or the move log, with the
Line 41: Line 18:
 
--
 
--
 
-- ${EDITREQUEST} - a link to create an edit request for the current page.
 
-- ${EDITREQUEST} - a link to create an edit request for the current page.
 +
--
 +
-- ${EXPIRY} - the protection expiry date in the format DD Month YYYY. If
 +
-- protection is indefinite or is not set, this is the blank string.
 
--
 
--
 
-- ${EXPLANATIONBLURB} - an explanation blurb, e.g. "Please discuss any changes
 
-- ${EXPLANATIONBLURB} - an explanation blurb, e.g. "Please discuss any changes
Line 51: Line 31:
 
-- ${INTROBLURB} - the PROTECTIONBLURB parameter, plus the expiry if an expiry
 
-- ${INTROBLURB} - the PROTECTIONBLURB parameter, plus the expiry if an expiry
 
-- is set. E.g. "Editing of this page by new or unregistered users is currently  
 
-- is set. E.g. "Editing of this page by new or unregistered users is currently  
-- disabled until dd Month YYYY."
+
-- disabled until dd Month YYYY"
--
 
-- ${INTROFRAGMENT} - the same as ${INTROBLURB}, but without final punctuation
 
-- so that it can be used in run-on sentences.
 
 
--
 
--
 
-- ${PAGETYPE} - the type of the page, e.g. "article" or "template".
 
-- ${PAGETYPE} - the type of the page, e.g. "article" or "template".
Line 80: Line 57:
 
-- ${VANDAL} - links for the specified username (or the root page name)
 
-- ${VANDAL} - links for the specified username (or the root page name)
 
-- using Module:Vandal-m.
 
-- using Module:Vandal-m.
--
 
--                                Functions
 
--
 
-- For advanced users, it is possible to use Lua functions instead of strings
 
-- in the banner config tables. Using functions gives flexibility that is not
 
-- possible just by using parameters. Functions take two arguments, the
 
-- protection object and the template arguments, and they must output a string.
 
--
 
-- For example:
 
--
 
-- text = function (protectionObj, args)
 
--    if protectionObj.level == 'autoconfirmed' then
 
--        return 'foo'
 
--    else
 
--        return 'bar'
 
--    end
 
-- end
 
--
 
-- Some protection object properties and methods that may be useful:
 
-- protectionObj.action - the protection action
 
-- protectionObj.level - the protection level
 
-- protectionObj.reason - the protection reason
 
-- protectionObj.expiry - the expiry. Nil if unset, the string "indef" if set
 
--    to indefinite, and the protection time in unix time if temporary.
 
-- protectionObj.protectionDate - the protection date in unix time, or nil if
 
--    unspecified.
 
-- protectionObj.bannerConfig - the banner config found by the module. Beware
 
--    of editing the config field used by the function, as it could create an
 
--    infinite loop.
 
-- protectionObj:isProtected - returns a boolean showing whether the page is
 
--    protected.
 
-- protectionObj:isTemporary - returns a boolean showing whether the expiry is
 
--    temporary.
 
-- protectionObj:isIncorrect - returns a boolean showing whether the protection
 
--    template is incorrect.
 
 
--]]
 
--]]
  
-- The master banner data, used if no values have been found in banners or
+
 
-- defaultBanners.
+
--------------------------------------------------------------------------------
 +
-- Banner defaults
 +
--------------------------------------------------------------------------------
 +
 
 +
-- If no protection reason is specified, or no banner data exists for the
 +
-- reason given, then this data will be used for the banner. Individual items
 +
-- from this data will also be used if that item doesn't exist in the reason-
 +
-- specific banner config.
 +
 
 
masterBanner = {
 
masterBanner = {
text = '${INTROBLURB}',
+
text = '${INTROBLURB}.',
 
explanation = '${EXPLANATIONBLURB}',
 
explanation = '${EXPLANATIONBLURB}',
tooltip = '${TOOLTIPBLURB}',
+
tooltip = '${TOOLTIPBLURB}.',
 
link = '${IMAGELINK}',
 
link = '${IMAGELINK}',
 
alt = 'Page ${PROTECTIONLEVEL}'
 
alt = 'Page ${PROTECTIONLEVEL}'
 
},
 
},
  
-- The default banner data. This holds banner data for different protection
 
-- levels.
 
-- *required* - this table needs edit, move, autoreview and upload subtables.
 
 
defaultBanners = {
 
defaultBanners = {
 
edit = {},
 
edit = {},
Line 136: Line 83:
 
autoconfirmed = {
 
autoconfirmed = {
 
alt = 'Page protected with pending changes level 1',
 
alt = 'Page protected with pending changes level 1',
tooltip = 'All edits by unregistered and new users are subject to review prior to becoming visible to unregistered users',
+
tooltip = 'All edits by unregistered and new users are subject to review',
 
image = 'Padlock-silver-light.svg'
 
image = 'Padlock-silver-light.svg'
 
},
 
},
Line 142: Line 89:
 
alt = 'Page protected with pending changes level 2',
 
alt = 'Page protected with pending changes level 2',
 
tooltip = 'All edits by users who are not reviewers or administrators are'
 
tooltip = 'All edits by users who are not reviewers or administrators are'
.. ' subject to review prior to becoming visible to unregistered users',
+
.. ' subject to review',
image = 'Padlock-orange.svg'
 
 
}
 
}
},
+
}
upload = {}
 
 
},
 
},
  
-- The banner data. This holds banner data for different protection reasons.
+
--------------------------------------------------------------------------------
-- In fact, the reasons specified in this table control which reasons are
+
-- Banner config
-- valid inputs to the first positional parameter.
+
--------------------------------------------------------------------------------
--
+
 
-- There is also a non-standard "description" field that can be used for items
 
-- in this table. This is a description of the protection reason for use in the
 
-- module documentation.
 
--
 
-- *required* - this table needs edit, move, autoreview and upload subtables.
 
 
banners = {
 
banners = {
 
edit = {
 
edit = {
Line 163: Line 103:
 
description = 'For pages protected to promote compliance with the'
 
description = 'For pages protected to promote compliance with the'
 
.. ' [[Wikipedia:Biographies of living persons'
 
.. ' [[Wikipedia:Biographies of living persons'
.. '|biographies of living persons]] policy',
+
.. '|biographies of living persons]] policy.',
text = '${INTROFRAGMENT} to promote compliance with'
+
text = '${INTROBLURB} to promote compliance with'
 
.. ' [[Wikipedia:Biographies of living persons'
 
.. ' [[Wikipedia:Biographies of living persons'
 
.. "|Wikipedia's policy on the biographies"
 
.. "|Wikipedia's policy on the biographies"
 
.. ' of living people]].',
 
.. ' of living people]].',
tooltip = '${TOOLTIPFRAGMENT} to promote compliance with the policy on'
+
tooltip = '${TOOLTIPBLURB} to promote compliance with the policy on biographies of'
.. ' biographies of living people',
+
.. ' living people',
 
},
 
},
 
dmca = {
 
dmca = {
 
description = 'For pages protected by the Wikimedia Foundation'
 
description = 'For pages protected by the Wikimedia Foundation'
.. ' due to [[Digital Millennium Copyright Act]] takedown requests',
+
.. ' due to Digital Millennium Copyright Act takedown requests.',
 
explanation = function (protectionObj, args)
 
explanation = function (protectionObj, args)
 
local ret = 'Pursuant to a rights owner notice under the Digital'
 
local ret = 'Pursuant to a rights owner notice under the Digital'
Line 194: Line 134:
 
},
 
},
 
dispute = {
 
dispute = {
description = 'For pages protected due to editing disputes',
+
description = 'For pages protected due to editing disputes.',
 
text = function (protectionObj, args)
 
text = function (protectionObj, args)
 
-- Find the value of "disputes".
 
-- Find the value of "disputes".
Line 214: Line 154:
 
local msg
 
local msg
 
if type(protectionObj.expiry) == 'number' then
 
if type(protectionObj.expiry) == 'number' then
msg = '${INTROFRAGMENT} or until editing %s have been resolved.'
+
msg = '${INTROBLURB}, or until editing %s have been resolved.'
 
else
 
else
msg = '${INTROFRAGMENT} until editing %s have been resolved.'
+
msg = '${INTROBLURB} until editing %s have been resolved.'
 
end
 
end
 
return string.format(msg, disputes)
 
return string.format(msg, disputes)
Line 222: Line 162:
 
explanation = "This protection is '''not''' an endorsement of the"
 
explanation = "This protection is '''not''' an endorsement of the"
 
.. ' ${CURRENTVERSION}. ${EXPLANATIONBLURB}',
 
.. ' ${CURRENTVERSION}. ${EXPLANATIONBLURB}',
tooltip = '${TOOLTIPFRAGMENT} due to editing disputes',
+
tooltip = '${TOOLTIPBLURB} due to editing disputes',
},
 
ecp = {
 
description = 'For articles in topic areas authorized by'
 
.. ' [[Wikipedia:Arbitration Committee|ArbCom]] or'
 
.. ' meets the criteria for community use',
 
tooltip = 'This ${PAGETYPE} is extended-confirmed protected',
 
alt = 'Extended-protected ${PAGETYPE}',
 
 
},
 
},
 
mainpage = {
 
mainpage = {
description = 'For pages protected for being displayed on the [[Main Page]]',
+
description = 'For pages protected for being displayed on the [[Main Page]].',
 
text = 'This file is currently'
 
text = 'This file is currently'
 
.. ' [[Wikipedia:This page is protected|protected]] from'
 
.. ' [[Wikipedia:This page is protected|protected]] from'
Line 245: Line 178:
 
},
 
},
 
office = {
 
office = {
description = 'For pages protected by the Wikimedia Foundation',
+
description = 'For pages protected by the Wikimedia Foundation.',
 
text = function (protectionObj, args)
 
text = function (protectionObj, args)
 
local ret = 'This ${PAGETYPE} is currently under the'
 
local ret = 'This ${PAGETYPE} is currently under the'
Line 264: Line 197:
 
reset = {
 
reset = {
 
description = 'For pages protected by the Wikimedia Foundation and'
 
description = 'For pages protected by the Wikimedia Foundation and'
.. ' "reset" to a bare-bones version',
+
.. ' "reset" to a bare-bones version.',
 
  text = 'This ${PAGETYPE} is currently under the'
 
  text = 'This ${PAGETYPE} is currently under the'
 
.. ' scrutiny of the'
 
.. ' scrutiny of the'
Line 272: Line 205:
 
local ret = ''
 
local ret = ''
 
if protectionObj.protectionDate then
 
if protectionObj.protectionDate then
ret = ret .. 'On ${PROTECTIONDATE} this ${PAGETYPE} was'
+
ret = ret .. 'On ${PROTECTIONDATE} this article was'
 
else
 
else
ret = ret .. 'This ${PAGETYPE} has been'
+
ret = ret .. 'This article has been'
 
end
 
end
 
ret = ret .. ' reduced to a'
 
ret = ret .. ' reduced to a'
Line 282: Line 215:
 
.. ' Standard Wikipedia policies will apply to its rewriting—which'
 
.. ' Standard Wikipedia policies will apply to its rewriting—which'
 
.. ' will eventually be open to all editors—and will be strictly'
 
.. ' will eventually be open to all editors—and will be strictly'
.. ' enforced. The ${PAGETYPE} has been ${PROTECTIONLEVEL} while'
+
.. ' enforced. The article has been ${PROTECTIONLEVEL} while'
 
.. ' it is being rebuilt.\n\n'
 
.. ' it is being rebuilt.\n\n'
 
.. 'Any insertion of material directly from'
 
.. 'Any insertion of material directly from'
.. ' pre-protection revisions of the ${PAGETYPE} will be removed, as'
+
.. ' pre-protection revisions of the article will be removed, as'
.. ' will any material added to the ${PAGETYPE} that is not properly'
+
.. ' will any material added to the article that is not properly'
 
.. ' sourced. The associated talk page(s) were also cleared on the'
 
.. ' sourced. The associated talk page(s) were also cleared on the'
 
.. " same date.\n\n"
 
.. " same date.\n\n"
Line 301: Line 234:
 
sock = {
 
sock = {
 
description = 'For pages protected due to'
 
description = 'For pages protected due to'
.. ' [[Wikipedia:Sock puppetry|sock puppetry]]',
+
.. ' [[Wikipedia:Sock puppetry|sock puppetry]].',
text = '${INTROFRAGMENT} to prevent [[Wikipedia:Sock puppetry|sock puppets]] of'
+
text = '${INTROBLURB} to prevent [[Wikipedia:Sock puppetry|sock puppets]] of'
 
.. ' [[Wikipedia:Blocking policy|blocked]] or'
 
.. ' [[Wikipedia:Blocking policy|blocked]] or'
.. ' [[Wikipedia:Banning policy|banned users]]'
+
.. ' [[Wikipedia:List of banned users|banned users]]'
 
.. ' from editing it.',
 
.. ' from editing it.',
tooltip = '${TOOLTIPFRAGMENT} to prevent sock puppets of blocked or banned users from'
+
tooltip = '${TOOLTIPBLURB} to prevent sock puppets of blocked or banned users from'
 
.. ' editing it',
 
.. ' editing it',
 
},
 
},
 
template = {
 
template = {
 
description = 'For [[Wikipedia:High-risk templates|high-risk]]'
 
description = 'For [[Wikipedia:High-risk templates|high-risk]]'
.. ' templates and Lua modules',
+
.. ' templates and Lua modules.',
 
text = 'This is a permanently [[Help:Protection|protected]] ${PAGETYPE},'
 
text = 'This is a permanently [[Help:Protection|protected]] ${PAGETYPE},'
 
.. ' as it is [[Wikipedia:High-risk templates|high-risk]].',
 
.. ' as it is [[Wikipedia:High-risk templates|high-risk]].',
Line 329: Line 262:
 
usertalk = {
 
usertalk = {
 
description = 'For pages protected against disruptive edits by a'
 
description = 'For pages protected against disruptive edits by a'
.. ' particular user',
+
.. ' particular user.',
text = '${INTROFRAGMENT} to prevent ${VANDAL} from using it to make disruptive edits,'
+
text = '${INTROBLURB} to prevent ${VANDAL} from using it to make disruptive edits,'
 
.. ' such as abusing the'
 
.. ' such as abusing the'
 
.. ' {{[[Template:unblock|unblock]]}} template.',
 
.. ' {{[[Template:unblock|unblock]]}} template.',
Line 346: Line 279:
 
vandalism = {
 
vandalism = {
 
description = 'For pages protected against'
 
description = 'For pages protected against'
.. ' [[Wikipedia:Vandalism|vandalism]]',
+
.. ' [[Wikipedia:Vandalism|vandalism]].',
text = '${INTROFRAGMENT} due to [[Wikipedia:Vandalism|vandalism]].',
+
text = '${INTROBLURB} due to [[Wikipedia:Vandalism|vandalism]].',
 
explanation = function (protectionObj, args)
 
explanation = function (protectionObj, args)
 
local ret = ''
 
local ret = ''
Line 356: Line 289:
 
return ret .. '${EXPLANATIONBLURB}'
 
return ret .. '${EXPLANATIONBLURB}'
 
end,
 
end,
tooltip = '${TOOLTIPFRAGMENT} due to vandalism',
+
tooltip = '${TOOLTIPBLURB} due to vandalism',
 
}
 
}
 
},
 
},
Line 362: Line 295:
 
dispute = {
 
dispute = {
 
description = 'For pages protected against page moves due to'
 
description = 'For pages protected against page moves due to'
.. ' disputes over the page title',
+
.. ' disputes over the page title.',
 
explanation = "This protection is '''not''' an endorsement of the"
 
explanation = "This protection is '''not''' an endorsement of the"
 
.. ' ${CURRENTVERSION}. ${EXPLANATIONBLURB}',
 
.. ' ${CURRENTVERSION}. ${EXPLANATIONBLURB}',
Line 370: Line 303:
 
description = 'For pages protected against'
 
description = 'For pages protected against'
 
.. ' [[Wikipedia:Vandalism#Page-move vandalism'
 
.. ' [[Wikipedia:Vandalism#Page-move vandalism'
.. ' |page-move vandalism]]'
+
.. ' |page-move vandalism]].'
 
}
 
}
 
},
 
},
autoreview = {},
+
autoreview = {}
upload = {}
 
 
},
 
},
 
--------------------------------------------------------------------------------
 
--
 
--                            GENERAL DATA TABLES
 
--
 
--------------------------------------------------------------------------------
 
  
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
Line 387: Line 313:
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
  
-- This table produces the protection blurbs available with the
 
-- ${PROTECTIONBLURB} parameter. It is sorted by protection action and
 
-- protection level, and is checked by the module in the following order:
 
-- 1. page's protection action, page's protection level
 
-- 2. page's protection action, default protection level
 
-- 3. "edit" protection action, default protection level
 
--
 
-- It is possible to use banner parameters inside this table.
 
-- *required* - this table needs edit, move, autoreview and upload subtables.
 
 
protectionBlurbs = {
 
protectionBlurbs = {
 
edit = {
 
edit = {
Line 402: Line 319:
 
autoconfirmed = 'Editing of this ${PAGETYPE} by [[Wikipedia:User access'
 
autoconfirmed = 'Editing of this ${PAGETYPE} by [[Wikipedia:User access'
 
.. ' levels#New users|new]] or [[Wikipedia:User access levels#Unregistered'
 
.. ' levels#New users|new]] or [[Wikipedia:User access levels#Unregistered'
.. ' users|unregistered]] users is currently [[Help:Protection|disabled]]',
+
.. ' users|unregistered]] users is currently [[Help:Protection|disabled]]'
extendedconfirmed = 'This ${PAGETYPE} is ${PROTECTIONLEVEL} as a result of'
 
.. ' [[Wikipedia:Arbitration Committee|ArbCom]] enforcement or meets the'
 
.. ' [[Wikipedia:Protection policy#extended|criteria for community use]]',
 
 
},
 
},
 
move = {
 
move = {
Line 421: Line 335:
 
.. ' [[Wikipedia:Administrators|administrators]] are currently'
 
.. ' [[Wikipedia:Administrators|administrators]] are currently'
 
.. ' [[Wikipedia:Pending changes|subject to review]]'
 
.. ' [[Wikipedia:Pending changes|subject to review]]'
},
 
upload = {
 
default = 'Uploading new versions of this ${PAGETYPE} is currently disabled'
 
 
}
 
}
 
},
 
},
Line 432: Line 343:
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
  
-- This table produces the explanation blurbs available with the
 
-- ${EXPLANATIONBLURB} parameter. It is sorted by protection action,
 
-- protection level, and whether the page is a talk page or not. If the page is
 
-- a talk page it will have a talk key of "talk"; otherwise it will have a talk
 
-- key of "subject". The table is checked in the following order:
 
-- 1. page's protection action, page's protection level, page's talk key
 
-- 2. page's protection action, page's protection level, default talk key
 
-- 3. page's protection action, default protection level, page's talk key
 
-- 4. page's protection action, default protection level, default talk key
 
--
 
-- It is possible to use banner parameters inside this table.
 
-- *required* - this table needs edit, move, autoreview and upload subtables.
 
 
explanationBlurbs = {
 
explanationBlurbs = {
 
edit = {
 
edit = {
Line 462: Line 361:
 
.. '|request unprotection]], [[Special:Userlogin|log in]], or'
 
.. '|request unprotection]], [[Special:Userlogin|log in]], or'
 
.. ' [[Special:UserLogin/signup|create an account]].',
 
.. ' [[Special:UserLogin/signup|create an account]].',
},
 
extendedconfirmed = {
 
default = 'Extended confirmed protection prevents edits from all IP editors'
 
.. ' and registered users with fewer than 30 days tenure and 500 edits.'
 
.. ' The [[Wikipedia:Protection policy#extended|policy on community use]]'
 
.. ' specifies that extended confirmed protection can be applied to combat'
 
.. ' disruption, given that semi-protection has proven to be ineffective.'
 
.. ' Please discuss any changes on the ${TALKPAGE}; you may'
 
.. ' ${EDITREQUEST} to ask for unconversial changes supported by'
 
.. ' [[Wikipedia:Consensus|consensus]].'
 
 
},
 
},
 
default = {
 
default = {
Line 533: Line 422:
 
.. ' [[Special:UserLogin/signup|create an account]].'
 
.. ' [[Special:UserLogin/signup|create an account]].'
 
},
 
},
},
 
upload = {
 
default = {
 
default = 'See the [[Wikipedia:Protection policy|'
 
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
 
.. ' The page may still be edited but new versions of the file'
 
.. ' cannot be uploaded until it is unprotected. You can'
 
.. ' request that a new version be uploaded by using a'
 
.. ' [[Wikipedia:Edit requests|protected edit request]], or you'
 
.. ' can  [[Wikipedia:Requests for page protection|request]]'
 
.. ' that the file be unprotected.'
 
}
 
 
}
 
}
 
},
 
},
Line 552: Line 429:
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
  
-- This table provides the data for the ${PROTECTIONLEVEL} parameter, which
 
-- produces a short label for different protection levels. It is sorted by
 
-- protection action and protection level, and is checked in the following
 
-- order:
 
-- 1. page's protection action, page's protection level
 
-- 2. page's protection action, default protection level
 
-- 3. "edit" protection action, default protection level
 
--
 
-- It is possible to use banner parameters inside this table.
 
-- *required* - this table needs edit, move, autoreview and upload subtables.
 
 
protectionLevels = {
 
protectionLevels = {
 
edit = {
 
edit = {
 
default = 'protected',
 
default = 'protected',
 
templateeditor = 'template-protected',
 
templateeditor = 'template-protected',
extendedconfirmed = 'extended-protected',
 
 
autoconfirmed = 'semi-protected',
 
autoconfirmed = 'semi-protected',
 
},
 
},
Line 573: Line 439:
 
},
 
},
 
autoreview = {
 
autoreview = {
},
 
upload = {
 
default = 'upload-protected'
 
 
}
 
}
 
},
 
},
Line 583: Line 446:
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
  
-- This table lists different padlock images for each protection action and
 
-- protection level. It is used if an image is not specified in any of the
 
-- banner data tables, and if the page does not satisfy the conditions for using
 
-- the ['image-filename-indef'] image. It is checked in the following order:
 
-- 1. page's protection action, page's protection level
 
-- 2. page's protection action, default protection level
 
 
images = {
 
images = {
 
edit = {
 
edit = {
default = 'Padlock.svg',
+
sysop = 'Padlock.svg',
 
templateeditor = 'Padlock-pink.svg',
 
templateeditor = 'Padlock-pink.svg',
extendedconfirmed = 'Padlock-blue.svg',
 
 
autoconfirmed = 'Padlock-silver.svg'
 
autoconfirmed = 'Padlock-silver.svg'
 
},
 
},
 
move = {
 
move = {
default = 'Padlock-olive.svg',
+
sysop = 'Padlock-olive.svg',
 +
templateeditor = 'Padlock-olive.svg'
 
},
 
},
 
autoreview = {
 
autoreview = {
 
autoconfirmed = 'Padlock-silver-light.svg',
 
autoconfirmed = 'Padlock-silver-light.svg',
default = 'Padlock-orange.svg'
+
reviewer = 'Padlock-orange.svg'
},
 
upload = {
 
default = 'Padlock-purple.svg'
 
 
}
 
}
},
 
 
-- Pages with a reason specified in this table will show the special "indef"
 
-- padlock, defined in the 'image-filename-indef' message, if no expiry is set.
 
indefImageReasons = {
 
template = true
 
 
},
 
},
  
Line 618: Line 466:
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
  
-- This table provides the data for the ${IMAGELINK} parameter, which gets
 
-- the image link for small padlock icons based on the page's protection action
 
-- and protection level. It is checked in the following order:
 
-- 1. page's protection action, page's protection level
 
-- 2. page's protection action, default protection level
 
-- 3. "edit" protection action, default protection level
 
--
 
-- It is possible to use banner parameters inside this table.
 
-- *required* - this table needs edit, move, autoreview and upload subtables.
 
 
imageLinks = {
 
imageLinks = {
 
edit = {
 
edit = {
 
default = 'Wikipedia:Protection policy#full',
 
default = 'Wikipedia:Protection policy#full',
 
templateeditor = 'Wikipedia:Protection policy#template',
 
templateeditor = 'Wikipedia:Protection policy#template',
extendedconfirmed = 'Wikipedia:Protection policy#extended',
 
 
autoconfirmed = 'Wikipedia:Protection policy#semi'
 
autoconfirmed = 'Wikipedia:Protection policy#semi'
 
},
 
},
Line 640: Line 478:
 
autoconfirmed = 'Wikipedia:Protection policy#pc1',
 
autoconfirmed = 'Wikipedia:Protection policy#pc1',
 
reviewer = 'Wikipedia:Protection policy#pc2'
 
reviewer = 'Wikipedia:Protection policy#pc2'
},
 
upload = {
 
default = 'Wikipedia:Protection policy#upload'
 
 
}
 
}
 
},
 
},
  
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
-- Padlock indicator names
+
-- Padlock positions
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
  
-- This table provides the "name" attribute for the <indicator> extension tag
+
-- Sets the "right" CSS property for padlock icons, based on its protection
-- with which small padlock icons are generated. All indicator tags on a page
+
-- action. This determines the position of the padlock among the other top
-- are displayed in alphabetical order based on this attribute, and with
+
-- icons. If no value is found for the action, the default field is used.
-- indicator tags with duplicate names, the last tag on the page wins.
+
 
-- The attribute is chosen based on the protection action; table keys must be a
+
padlockPositions = {
-- protection action name or the string "default".
+
autoreview = '85px',
padlockIndicatorNames = {
+
default = '55px'
autoreview = 'pp-autoreview',
 
default = 'pp-default'
 
 
},
 
},
  
Line 666: Line 499:
  
 
--[[
 
--[[
-- The protection categories are stored in the protectionCategories table.
+
-- The protection categories are stored in the cfg.protectionCategories table.
 
-- Keys to this table are made up of the following strings:
 
-- Keys to this table are made up of the following strings:
 
--
 
--
Line 730: Line 563:
 
--]]
 
--]]
  
-- If the reason specified to the template is listed in this table,
 
-- namespace data will take priority over reason data in the protectionCategories
 
-- table.
 
 
reasonsWithNamespacePriority = {
 
reasonsWithNamespacePriority = {
 +
-- If the reason specified to the template is listed in this table,
 +
-- namespace data will take priority over reason data in the protectionCategories
 +
-- table.
 
vandalism = true,
 
vandalism = true,
 
},
 
},
  
-- The string to use as a namespace key for the protectionCategories table for each
 
-- namespace number.
 
 
categoryNamespaceKeys = {
 
categoryNamespaceKeys = {
 +
-- The string to use as a namespace key for the protectionCategories table for each
 +
-- namespace number.
 
[  2] = 'user',
 
[  2] = 'user',
 
[  3] = 'user',
 
[  3] = 'user',
Line 749: Line 582:
 
[ 14] = 'category',
 
[ 14] = 'category',
 
[100] = 'portal',
 
[100] = 'portal',
[828] = 'module',
 
 
},
 
},
  
Line 757: Line 589:
 
['all|all|reset|all|all']                = 'Wikipedia Office-protected pages',
 
['all|all|reset|all|all']                = 'Wikipedia Office-protected pages',
 
['all|all|dmca|all|all']                = 'Wikipedia Office-protected pages',
 
['all|all|dmca|all|all']                = 'Wikipedia Office-protected pages',
['all|all|mainpage|all|all']            = 'Wikipedia fully-protected main page files',
+
['all|all|mainpage|all|all']            = 'Protected main page images',
['all|all|all|extendedconfirmed|all']    = 'Wikipedia pages under 30-500 editing restriction',
+
['all|template|all|all|edit']            = 'Wikipedia protected templates',
['all|all|ecp|extendedconfirmed|all']    = 'Wikipedia pages under 30-500 editing restriction',
 
['all|template|all|all|edit']            = 'Wikipedia fully-protected templates',
 
 
['all|all|all|autoconfirmed|edit']      = 'Wikipedia semi-protected pages',
 
['all|all|all|autoconfirmed|edit']      = 'Wikipedia semi-protected pages',
 
['indef|all|all|autoconfirmed|edit']    = 'Wikipedia indefinitely semi-protected pages',
 
['indef|all|all|autoconfirmed|edit']    = 'Wikipedia indefinitely semi-protected pages',
Line 769: Line 599:
 
['all|all|vandalism|autoconfirmed|edit'] = 'Wikipedia pages semi-protected against vandalism',
 
['all|all|vandalism|autoconfirmed|edit'] = 'Wikipedia pages semi-protected against vandalism',
 
['all|category|all|autoconfirmed|edit']  = 'Wikipedia semi-protected categories',
 
['all|category|all|autoconfirmed|edit']  = 'Wikipedia semi-protected categories',
['all|file|all|autoconfirmed|edit']      = 'Wikipedia semi-protected files',
+
['all|file|all|autoconfirmed|edit']      = 'Semi-protected images',
['all|portal|all|autoconfirmed|edit']    = 'Wikipedia semi-protected portals',
+
['all|portal|all|autoconfirmed|edit']    = 'Semi-protected portals',
['all|project|all|autoconfirmed|edit']  = 'Wikipedia semi-protected project pages',
+
['all|project|all|autoconfirmed|edit']  = 'Semi-protected project pages',
['all|talk|all|autoconfirmed|edit']      = 'Wikipedia semi-protected talk pages',
+
['all|talk|all|autoconfirmed|edit']      = 'Semi-protected talk pages',
 +
['all|template|all|autoconfirmed|edit']  = 'Wikipedia semi-protected templates',
 
['all|template|all|autoconfirmed|edit']  = 'Wikipedia semi-protected templates',
 
['all|template|all|autoconfirmed|edit']  = 'Wikipedia semi-protected templates',
 
['all|user|all|autoconfirmed|edit']      = 'Wikipedia semi-protected user and user talk pages',
 
['all|user|all|autoconfirmed|edit']      = 'Wikipedia semi-protected user and user talk pages',
['all|template|all|templateeditor|edit'] = 'Wikipedia template-protected templates',
 
 
['all|all|blp|sysop|edit']              = 'Wikipedia indefinitely protected biographies of living people',
 
['all|all|blp|sysop|edit']              = 'Wikipedia indefinitely protected biographies of living people',
 
['temp|all|blp|sysop|edit']              = 'Wikipedia temporarily protected biographies of living people',
 
['temp|all|blp|sysop|edit']              = 'Wikipedia temporarily protected biographies of living people',
Line 782: Line 612:
 
['all|all|vandalism|sysop|edit']        = 'Wikipedia pages protected against vandalism',
 
['all|all|vandalism|sysop|edit']        = 'Wikipedia pages protected against vandalism',
 
['all|category|all|sysop|edit']          = 'Wikipedia protected categories',
 
['all|category|all|sysop|edit']          = 'Wikipedia protected categories',
['all|file|all|sysop|edit']              = 'Wikipedia fully-protected files',
+
['all|file|all|sysop|edit']              = 'Protected images',
['all|project|all|sysop|edit']          = 'Wikipedia fully-protected project pages',
+
['all|project|all|sysop|edit']          = 'Protected project pages',
['all|talk|all|sysop|edit']              = 'Wikipedia fully-protected talk pages',
+
['all|talk|all|sysop|edit']              = 'Protected talk pages',
['all|template|all|sysop|edit']          = 'Wikipedia fully-protected templates',
+
['all|template|all|sysop|edit']          = 'Wikipedia protected templates',
 
['all|user|all|sysop|edit']              = 'Wikipedia protected user and user talk pages',
 
['all|user|all|sysop|edit']              = 'Wikipedia protected user and user talk pages',
['all|module|all|all|edit']              = 'Wikipedia fully-protected modules',
 
['all|module|all|templateeditor|edit']  = 'Wikipedia template-protected modules',
 
['all|module|all|autoconfirmed|edit']    = 'Wikipedia semi-protected modules',
 
 
['all|all|all|sysop|move']              = 'Wikipedia move-protected pages',
 
['all|all|all|sysop|move']              = 'Wikipedia move-protected pages',
 
['indef|all|all|sysop|move']            = 'Wikipedia indefinitely move-protected pages',
 
['indef|all|all|sysop|move']            = 'Wikipedia indefinitely move-protected pages',
Line 802: Line 629:
 
['all|all|all|autoconfirmed|autoreview'] = 'Wikipedia pending changes protected pages (level 1)',
 
['all|all|all|autoconfirmed|autoreview'] = 'Wikipedia pending changes protected pages (level 1)',
 
['all|all|all|reviewer|autoreview']      = 'Wikipedia pending changes protected pages (level 2)',
 
['all|all|all|reviewer|autoreview']      = 'Wikipedia pending changes protected pages (level 2)',
['all|file|all|all|upload']              = 'Wikipedia upload-protected files',
 
 
},
 
},
  
Line 809: Line 635:
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
  
-- This table configures the expiry category behaviour for each protection
+
-- If any of the following reasons is passed to the module, it will not output
-- action.
+
-- the "pages without expiry" tracking category.
-- * If set to true, setting that action will always categorise the page if
+
reasonsWithoutExpiryCheck = {
--  an expiry parameter is not set.
+
blp = true,
-- * If set to false, setting that action will never categorise the page.
+
},
-- * If set to nil, the module will categorise the page if:
 
--  1) an expiry parameter is not set, and
 
--  2) a reason is provided, and
 
--  3) the specified reason is not blacklisted in the reasonsWithoutExpiryCheck
 
--      table.
 
  
 +
-- The module will only output the "pages without expiry" tracking category
 +
-- for the actions set to true in the following table.
 
expiryCheckActions = {
 
expiryCheckActions = {
edit = nil,
+
edit = true,
 
move = false,
 
move = false,
autoreview = true,
+
autoreview = true
upload = false
 
},
 
 
 
reasonsWithoutExpiryCheck = {
 
blp = true,
 
template = true,
 
 
},
 
},
  
Line 836: Line 653:
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
  
-- This table produces the page types available with the ${PAGETYPE} parameter.
 
-- Keys are namespace numbers, or the string "default" for the default value.
 
 
pagetypes = {
 
pagetypes = {
 
[0] = 'article',
 
[0] = 'article',
Line 851: Line 666:
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
  
-- This table contains values passed to the expiry parameter that mean the page
 
-- is protected indefinitely.
 
 
indefStrings = {
 
indefStrings = {
 
['indef'] = true,
 
['indef'] = true,
Line 858: Line 671:
 
['indefinitely'] = true,
 
['indefinitely'] = true,
 
['infinite'] = true,
 
['infinite'] = true,
},
 
 
--------------------------------------------------------------------------------
 
-- Group hierarchy
 
--------------------------------------------------------------------------------
 
 
-- This table maps each group to all groups that have a superset of the original
 
-- group's page editing permissions.
 
hierarchy = {
 
sysop = {},
 
reviewer = {'sysop'},
 
filemover = {'sysop'},
 
templateeditor = {'sysop'},
 
extendedconfirmed = {'sysop'},
 
autoconfirmed = {'reviewer', 'filemover', 'templateeditor', 'extendedconfirmed'},
 
user = {'autoconfirmed'},
 
['*'] = {'user'}
 
 
},
 
},
  
Line 881: Line 677:
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
  
-- This table contains wrapper templates used with the module, and their
 
-- default arguments. Templates specified in this table should contain the
 
-- following invocation, and no other template content:
 
--
 
-- {{#invoke:Protection banner|main}}
 
--
 
-- If other content is desired, it can be added between
 
-- <noinclude>...</noinclude> tags.
 
--
 
-- When a user calls one of these wrapper templates, they will use the
 
-- default arguments automatically. However, users can override any of the
 
-- arguments.
 
 
wrappers = {
 
wrappers = {
 
['Template:Pp']                        = {},
 
['Template:Pp']                        = {},
['Template:Pp-30-500']                 = {'ecp'},
+
['Template:Pp-blp']                     = {'blp', action = 'edit'},
['Template:Pp-blp']                    = {'blp'},
 
 
-- we don't need Template:Pp-create
 
-- we don't need Template:Pp-create
['Template:Pp-dispute']                = {'dispute'},
+
['Template:Pp-dispute']                = {'dispute', action = 'edit'},
['Template:Pp-main-page']               = {'mainpage'},
+
['Template:Pp-main-page']               = {'mainpage', action = 'edit'},
 
['Template:Pp-move']                    = {action = 'move'},
 
['Template:Pp-move']                    = {action = 'move'},
 
['Template:Pp-move-dispute']            = {'dispute', action = 'move'},
 
['Template:Pp-move-dispute']            = {'dispute', action = 'move'},
Line 906: Line 689:
 
['Template:Pp-office']                  = {'office'},
 
['Template:Pp-office']                  = {'office'},
 
['Template:Pp-office-dmca']            = {'dmca'},
 
['Template:Pp-office-dmca']            = {'dmca'},
['Template:Pp-pc1']                    = {action = 'autoreview', small = true},
+
['Template:Pp-pc1']                    = {action = 'autoreview'},
['Template:Pp-pc2']                    = {action = 'autoreview', small = true},
+
['Template:Pp-pc2']                    = {action = 'autoreview'},
 +
['Template:Pp-protected']              = {action = 'edit'},
 
['Template:Pp-reset']                  = {'reset'},
 
['Template:Pp-reset']                  = {'reset'},
['Template:Pp-semi-indef']              = {small = true},
+
['Template:Pp-semi-indef']              = {expiry = 'indef'},
['Template:Pp-sock']                    = {'sock'},
+
['Template:Pp-sock']                    = {'sock', action = 'edit'},
['Template:Pp-template']                = {'template', small = true},
+
['Template:Pp-template']                = {'template', action = 'edit'},
['Template:Pp-upload']                  = {action = 'upload'},
+
['Template:Pp-usertalk']                = {'usertalk', action = 'edit'},
['Template:Pp-usertalk']                = {'usertalk'},
+
['Template:Pp-vandalism']              = {'vandalism', action = 'edit'},
['Template:Pp-vandalism']              = {'vandalism'},
 
 
},
 
},
  
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
 
--  
 
--  
--                                MESSAGES
+
--                                Messages
 
--  
 
--  
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
Line 926: Line 709:
  
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
-- Intro blurb and intro fragment
+
-- Intro blurb
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
  
-- These messages specify what is produced by the ${INTROBLURB} and
+
['intro-blurb-expiry'] = '${PROTECTIONBLURB} until ${EXPIRY}',
-- ${INTROFRAGMENT} parameters. If the protection is temporary they use the
+
['intro-blurb-noexpiry'] = '${PROTECTIONBLURB}',
-- intro-blurb-expiry or intro-fragment-expiry, and if not they use
 
-- intro-blurb-noexpiry or intro-fragment-noexpiry.
 
-- It is possible to use banner parameters in these messages.
 
['intro-blurb-expiry'] = '${PROTECTIONBLURB} until ${EXPIRY}.',
 
['intro-blurb-noexpiry'] = '${PROTECTIONBLURB}.',
 
['intro-fragment-expiry'] = '${PROTECTIONBLURB} until ${EXPIRY},',
 
['intro-fragment-noexpiry'] = '${PROTECTIONBLURB}',
 
  
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
Line 943: Line 719:
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
  
-- These messages specify what is produced by the ${TOOLTIPBLURB} parameter.
+
['tooltip-blurb-expiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL} until ${EXPIRY}',
-- If the protection is temporary the tooltip-blurb-expiry message is used, and
+
['tooltip-blurb-noexpiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL}',
-- if not the tooltip-blurb-noexpiry message is used.
 
-- It is possible to use banner parameters in these messages.
 
['tooltip-blurb-expiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL} until ${EXPIRY}.',
 
['tooltip-blurb-noexpiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL}.',
 
['tooltip-fragment-expiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL} until ${EXPIRY},',
 
['tooltip-fragment-noexpiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL}',
 
  
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
Line 956: Line 726:
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
  
-- An explanation blurb for pages that cannot be unprotected, e.g. for pages
+
-- An explanation blurb for pages in the MediaWiki namespace.
-- in the MediaWiki namespace.
+
['explanation-blurb-mediawiki'] = 'See the [[Wikipedia:Protection policy|'
-- It is possible to use banner parameters in this message.
 
['explanation-blurb-nounprotect'] = 'See the [[Wikipedia:Protection policy|'
 
 
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
 
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
 
.. ' Please discuss any changes on the ${TALKPAGE}; you'
 
.. ' Please discuss any changes on the ${TALKPAGE}; you'
Line 969: Line 737:
  
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
-- Protection log display values
+
-- Protection log links
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
  
-- These messages determine the display values for the protection log link
 
-- or the pending changes log link produced by the ${PROTECTIONLOG} parameter.
 
-- It is possible to use banner parameters in these messages.
 
 
['protection-log-display'] = 'protection log',
 
['protection-log-display'] = 'protection log',
 
['pc-log-display'] = 'pending changes log',
 
['pc-log-display'] = 'pending changes log',
  
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
-- Current version display values
+
-- Current version messages
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
  
-- These messages determine the display values for the page history link
 
-- or the move log link produced by the ${CURRENTVERSION} parameter.
 
-- It is possible to use banner parameters in these messages.
 
 
['current-version-move-display'] = 'current title',
 
['current-version-move-display'] = 'current title',
 
['current-version-edit-display'] = 'current version',
 
['current-version-edit-display'] = 'current version',
Line 992: Line 754:
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
  
-- This message determines the display value of the talk page link produced
 
-- with the ${TALKPAGE} parameter.
 
-- It is possible to use banner parameters in this message.
 
 
['talk-page-link-display'] = 'talk page',
 
['talk-page-link-display'] = 'talk page',
  
Line 1,001: Line 760:
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
  
-- This message determines the display value of the edit request link produced
 
-- with the ${EDITREQUEST} parameter.
 
-- It is possible to use banner parameters in this message.
 
 
['edit-request-display'] = 'submit an edit request',
 
['edit-request-display'] = 'submit an edit request',
  
Line 1,012: Line 768:
 
-- This is the format for the blurb expiry date. It should be valid input for
 
-- This is the format for the blurb expiry date. It should be valid input for
 
-- the first parameter of the #time parser function.
 
-- the first parameter of the #time parser function.
['expiry-date-format'] = 'F j, Y',
+
['expiry-date-format'] = 'j F, Y',
  
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
Line 1,018: Line 774:
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
  
-- These messages determine which tracking categories the module outputs.
 
 
['tracking-category-incorrect'] = 'Wikipedia pages with incorrect protection templates',
 
['tracking-category-incorrect'] = 'Wikipedia pages with incorrect protection templates',
 +
['tracking-category-expiry'] = 'Wikipedia protected pages without expiry',
 +
['tracking-category-create'] = 'Wikipedia pages tagged as create-protected',
 
['tracking-category-template'] = 'Wikipedia template-protected pages other than templates and modules',
 
['tracking-category-template'] = 'Wikipedia template-protected pages other than templates and modules',
  
Line 1,027: Line 784:
  
 
-- These are images that are not defined by their protection action and protection level.
 
-- These are images that are not defined by their protection action and protection level.
['image-filename-indef'] = 'Padlock.svg',
+
 
 +
['image-filename-indef'] = 'Padlock-red.svg',
 
['image-filename-default'] = 'Transparent.gif',
 
['image-filename-default'] = 'Transparent.gif',
 +
 +
--------------------------------------------------------------------------------
 +
-- Error message blurb
 +
--------------------------------------------------------------------------------
 +
 +
-- $1 is replaced with the error message text. The whole message is turned into
 +
-- a large red error message, so there is no need to add HTML styling.
 +
['error-message-blurb'] = 'Error: $1 ([[Module:Protection banner#Errors|help]])'
  
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------

Please note that all contributions to MINR.ORG WIKI may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see MINR.ORG WIKI:Copyrights for details). Do not submit copyrighted work without permission!

Cancel Editing help (opens in new window)