The category handler module understands an unlimited number of numbered parameters.
The '''other''' parameter defines what should be used in the remaining namespaces that have not explicitly been fed data.
Note the empty but defined '''talk''' parameter. That stops this module from showing what has been fed to the '''other''' parameter, when in talk space.
The category handler module also has a parameter called '''all'''. It works like this:
<source lang="lua">
p = {}
local categoryHandler = require( 'Module:Category handler' ).main
function p.main( frame )
local result = 'This is a module used in all namespaces.'
local category = categoryHandler{
all = '[[Category:Somecat1]]', -- Categorize in all namespaces
nocat = frame.args.nocat -- So "nocat=true/false" works
}
category = category or '' -- Check that we don't have a nil value for the category variable.
return result .. category
end
return p
</source>
The above example will categorize in all namespaces, but not on blacklisted pages. If you want to demonstrate that module on a page, then use "<code>nocat=true</code>" to prevent the template from categorizing.
We suggest avoiding the '''all''' parameter, since modules and templates should preferably only categorize in the namespaces they need to.
The all parameter can also be combined with the rest of the parameters. Like this:
<source lang="lua">
p = {}
local categoryHandler = require( 'Module:Category handler' ).main
function p.main( frame )
local result = 'This is a module used in all namespaces.'
local category = categoryHandler{
all = '[[Category:Somecat1]]', -- Categorize in all namespaces
main = '[[Category:Somecat2]]', -- And add this in main space
other = '[[Category:Somecat3]]', -- And add this in all other namespaces
nocat = frame.args.nocat -- So "nocat=true/false" works
}
category = category or '' -- Check that we don't have a nil value for the category variable.
return result .. category
end
return p
</source>
If the above module is placed on an article, then it will add the categories "Somecat1" and "Somecat2". But on all other types of pages it will instead add "Somecat1" and "Somecat3". As the example shows, the all parameter works independently of the rest of the parameters.
=== Subpages ===
The category handler module understands the '''subpage''' parameter. Like this:
<source lang="lua">
p = {}
local categoryHandler = require( 'Module:Category handler' ).main
function p.main( frame )
local result = 'This is a module used in all namespaces.'
local category = categoryHandler{
subpage = 'no' -- Don't categorize on subpages
wikipedia = '[[Category:Somecat]]',
nocat = frame.args.nocat -- So "nocat=true/false" works
}
category = category or '' -- Check that we don't have a nil value for the category variable.
return result .. category
end
return p
</source>
If "<code>subpage='no'</code>" then this template will ''not'' categorize on subpages. For the rare occasion you ''only'' want to categorize on subpages, then use "<code>subpage='only'</code>". If '''subpage''' is empty or undefined then this template categorizes both on basepages and on subpages.
=== Blacklist ===
This module has a blacklist of the pages and page types where templates should not auto-categorize. Thus modules that use this meta-template will for instance not categorize on /archive pages and on the subpages of [[Wikipedia:Template messages]].
If you want a template to categorize on a blacklisted page, then feed "<code><nowiki>nocat = false</nowiki></code>" to the module when you place it on the page, thus skipping the blacklist check. Note that this module only categorizes if it has data for the namespace. For instance, if the basic syntax is used (see [[#Basic usage|basic usage]] above), then even if you set "<code>nocat = false</code>" the template will not categorize on a talk page, since it has no data for talk pages. But it has data for help space, so on a blacklisted help page it will categorize.
The blacklist is located in the configuration table <code>cfg.blacklist</code> near the top of the module code.
=== The "nocat" parameter ===
This module understands the '''nocat''' parameter:
* If "<code>nocat = true</code>" then this template does ''not'' categorize.
* If '''nocat''' is <code>nil</code> then this template categorizes as usual.
* If "<code>nocat = true/code>" this template categorizes even when on blacklisted pages. (See section
talk = '[[Category:Somecat]]',
other = '<p class="error">Thill the namespaces.
|