Module:Protection banner/config: Difference between revisions

(add error message blurb)
 
(95 intermediate revisions by 25 users not shown)
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). Available parameters:
-- enclosed in curly braces).
--
--                          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
-- display message "current-version-edit-display" or
-- display message "current-version-edit-display" or
-- "current-version-move-display".
-- "current-version-move-display".
--
-- ${DISPUTEBLURB} - a blurb about editing disputes, using the INTROBLURB
-- parameter and the DISPUTESECTION parameter. E.g. "This page is protected
-- from editing until disputes have been resolved."
--
-- ${DISPUTESECTION} - if a section link is passed to the module, this is
-- a link to that section with the display message
-- "dispute-section-link-display". Otherwise it is just the display
-- message with no link.
--
--
-- ${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 40: Line 51:
-- ${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."
--
--
-- ${OFFICEBLURB} - a blurb about pages protected by the WMF office. If the
-- ${INTROFRAGMENT} - the same as ${INTROBLURB}, but without final punctuation
-- protection date has been specified, includes a sentence saying when the page
-- so that it can be used in run-on sentences.
-- was protected.
--
--
-- ${PAGETYPE} - the type of the page, e.g. "article" or "template".
-- ${PAGETYPE} - the type of the page, e.g. "article" or "template".
Line 60: Line 70:
-- ${PROTECTIONLOG} - a link to the protection log or the pending changes log,
-- ${PROTECTIONLOG} - a link to the protection log or the pending changes log,
-- depending on the protection action.
-- depending on the protection action.
--
-- ${RESETBLURB} - a blurb for pages using {{pp-reset}}. If the protection
-- date is specified, this includes information about when the page was
-- protected.
--
--
-- ${TALKPAGE} - a link to the talk page. If a section is specified, links
-- ${TALKPAGE} - a link to the talk page. If a section is specified, links
Line 74: Line 80:
-- ${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