Get XOOPS XOOPSXOOPS FAQFAQ ForumsForums NewsNews ThemesThemes ModulesModules

Search

Donate to XOOPS!

Please select an amount to donate


Do you want your username revealed with your donation?
Yes - List me as a Generous Donor
No - List my donation as from an Anonymous Donor


Local Support

Advertisement

XOOPS Code hosted on SourceForge

Cumulus Tag Cloud

admin Arabic banner block Christmas comments cumulus DayDawn dhsoft e-Commerce E-Learning Git Google GUI hacks instant-zero jQuery module mygalleries news Nordic Olédrion oxygen PageRank PHP rmcommon security SEO simple-XOOPS Smarty sport tag Theme tutorial wiki WOX xoops XoopsEngine ZendFramework

New Users

Registering user

# 133948

guilhermeans

Welcome to XOOPS!
[Main Page]

Mw:Manual:Using custom namespaces

From XOOPS Web Application System

Main Page | Recent changes | Edit this page | Page history | Switch to MediaWiki mode

Printable version | Disclaimers | Privacy policy
Category: MediaWiki configuration

In addition to the built-in namespaces, it is possible to add custom namespaces to a MediaWiki installation, to further separate content and allow more logical organization.

Custom namespaces are simple to manage using the $wgExtraNamespaces configuration directive.

Contents

Creating a custom namespace

To create a custom namespace, add an appropriate line to LocalSettings.php, e.g.

<source lang="php"> $wgExtraNamespaces[100] = "Foo"; </source>

Note the use of the constant 100 in defining the namespace. All namespaces require a numerical index; for custom namespaces, these start at 100. Another point to remember is that an even namespace index denotes a content namespace, whereas an odd index denotes a discussion namespace. It is usual to define a discussion namespace with each custom namespace, so the declaration above might be expanded to:

<source lang="php"> $wgExtraNamespaces[100] = "Foo"; $wgExtraNamespaces[101] = "Foo_talk"; </source>

Content namespaces

When building the site statistics page (see Special:Statistics), MediaWiki uses values stored in the database to calculate certain totals. One particular total is the "number of articles" or "number of content pages" figure.

For a page to be considered an article, or proper content, it must:

  • Be in the main namespace, or a defined content namespace
  • Not be a redirect page
  • Contain at least one internal link

When creating custom namespaces to hold additional content, it is a good idea to indicate this in the configuration. This is done via the $wgContentNamespaces configuration directive.

To extend the example above, one might add the following to LocalSettings.php:

<source lang="php"> $wgContentNamespaces[] = 100; </source>

MediaWiki will now consider pages in the "Foo" namespace to be articles, if they meet the remaining criteria, and will include them when updating the site statistics counters.

When adjusting the value of $wgContentNamespaces, it is a good idea to run the maintenance/updateArticleCount.php script to update the internal statistics cache (see: Manual:Maintenance scripts).

I found that in MW 1.10.0 the updateArticleCount.php script didn't accurately update these stats (it updated the first custom NS, not all that were put into the $wgContentNamespaces array. The fix was to instead run initStats.php --update , which worked properly. Paul-lmi 17:39, 21 July 2007 (UTC)
Same experience here with MW 1.8.5. --oKtosiTe - talk 16:50, 3 September 2007 (UTC)

Dealing with existing pages

When storing page records, MediaWiki uses a namespace's numerical index, along with the remaining title text. Thus, when a page is created in a namespace that doesn't exist, e.g. "Bar:Some page", it is treated as being in the main namespace.

This can cause problems if adding a custom namespace definition for "Bar" at a later date, as MediaWiki will look for a page indexed via the proper namespace, but won't be able to find it, thus making the content inaccessible.

To correct this problem, there are two main approaches.

Move conflicting pages

If the number of pages affected is small (e.g. "Bar" held five pages created before the namespace was defined in the site configuration), then the following approach might be suitable:

  1. Comment out the namespace definition in the configuration file
  2. Access each affected page, and move it out of the pseudo-namespace, e.g. move "Bar:Some page" to "Bar2:Some page"
  3. Un-comment the namespace definition
  4. Move the affected pages back into the new namespace

Use a maintenance script

Within the maintenance directory, there is a maintenance script which performs the above operation more effectively for a large number of pages; namespaceDupes.php. It is simple to use, but as with all MediaWiki maintenance scripts, consult the available usage information first (use --help) as an option.

Removing custom namespaces

The problem addressed above also occurs when a custom namespace definition is removed; MediaWiki is no longer aware of the numerical index for the namespace, and attempts to search the main namespace for the desired pages, leading to inaccessible content. This is a rare occurrence, since most sites will not need namespaces removed, but it is a problem.

See also

Template:Languages

Retrieved from "http://xoops.org/modules/mediawiki/index.php/Mw:Manual:Using_custom_namespaces"

This page has been accessed 2,005 times. This page was last modified 08:09, 20 November 2007. Content is available under XOOPS Web Application System.