Template:Pp-meta/doc

This is pp-meta, a meta-template used to create protection message boxes.

This meta-template automatically uses the right style for each namespace. It also takes care of the code for the "small" case with just a small padlock icon at the top right corner of the page.

Examples
Note that the small padlock in the top right corner of this page also is an example created with this meta-template. This template uses a position that does not collide with icons such as the "Featured Article" star, the "Spoken Wikipedia" icon, or other top-right-hand-corner icons.

Parameters
This template is designed to be both defining of the major types of protection notice, but flexible enough to allow exceptions. All parameters have some fallback to allow for graceful failure, but some should almost always be applied.

"Usually" required parameters

 * :The type parameter applies most default settings for the broad classes of protection templates. It can have values equal to any of the following:,  ,  ,  ,  , and   (all case-insensitive). These values apply default boilerplate text, images, and links. This parameter should almost always be used, as the default settings require little other input, making the code of templates such as   very clean. Note that not supplying this parameter causes the image to default to Image:Transparent.gif.
 * : The small parameter lets the template decide whether to display a small icon version or a large boilerplate version. It can take any value, but the only one which will be acted on is " " (case-insensitive). As instance templates should be able to decide, using their input, whether or not to apply, this should usually be set to  , which defaults to non-small but allows small to be specified. Not supplying this parameter will cause the template to always be expanded big.
 * : This expiry parameter allows, when  is defined normally, the expiry date to be automatically displayed properly for both the tooltip of the small version and in text for the large version. It should typically take the input , which allows instances using this template to be provided input specifying the expiry date. It should be left blank for templates where   is set to  , as it has no effect because indefinite protection templates clearly do not need expiry dates to be specified.
 * :The dispute parameter adds some boilerplate text disclaiming against endorsement of the protected version or title. It is not dependent on the  parameter, but the   parameter described below overrides it when applicable.
 * :The reason parameter allows a particular reason to be applied to the template to explain why the page is protected. The code used in this parameter should be prefixed with  so that there are proper spaces between words as   in the code is not prefixed with a space, such that the requisite full stop is not prefixed by a space when   is null. Instances which want to pass through the reason should use code along the general lines of.
 * : The categories parameter is relatively strict in the input form instances of this template should use: if the template has categories that it should apply to pages upon which it is placed, they should be implemented within the container of  and , which will cause categories to be disabled in the instances if they are given   as an argument. If the template applies no categories, there is no use for this parameter.
 * : Although the demospace parameter is primarily useful for testing purposes, its name betrays its purpose: demonstration. Instances should generally use the code  so as to allow them to be forced to display as though they were in a particular namespace. If a template is to be always used in a particular namespace and never in another, it is also possible to set   to any of ,  , or   (all case-insensitive) to specify the messagebox type typical for that namespace or namespace family such that it will never change from that type.
 * : The demolevel parameter, like the  parameter, is useful for demonstration and testing. Instances should generally use the code   so as to allow them to be forced to display as though they were on a page with a particular level of protection. This must have the default of "undefined" if it is used, as a null value will cause the template to fail. Failing the demolevel test causes the template to disappear and the page to be placed into Category:Wikipedia pages with incorrect protection templates.

Type-dependent parameters

 * : If the  applied is , and   as below does not over-ride it, then the parameter xfd should be applied as equal to   so that this input is passed through and the explanation can be more descriptive.

Optional parameters

 * :The image parameter allows an alternate icon to be chosen if so desired. This image should typically be chosen from Padlock icons, though any image can be chosen. Only the name of the alternate image should be applied; do not supply the "Image:" prefix.
 * :The icon-link parameter allows one to change the page to which the small version's icon links. This probably shouldn't generally be used if  is in use as   applies proper links to Protection policy, but it allows for exceptions and can define the link to sections within that page. Input given to this parameter should not be supplied within double brackets.
 * : The icon-text parameter, like the  parameter, affects only the small version. This one, however, affects the text outputted as the tooltip for the protection icon. It completely replaces, when used, the default text and any specified by , including the final full stop.
 * : The icon-reason parameter allows text to be added to the default text of the small version's tooltip as supplied by . It is over-written by   if that parameter is used.
 * : This parameter, reason-text, allows one to over-ride the first, bolded line of the text of the expanded version of any instance. It, when used, over-rides input as initially defined by,  , and  , including the final full stop.
 * :This code over-rides the explanation text following the bolded reason line; it over-rides text initially provided by the template itself,,  , and, if applicable,.
 * :This code disallows a particular level of protection for templates which do not have the type  or  . It can be set to either   or   to disable the template on semi-protected or full-protected pages respectively. If the page is protected at the disallowed level and   is not set to the allowed level, the template will not appear and the page will be placed into Category:Wikipedia pages with incorrect protection templates.