Reputation: 11
here my Problem:
I have a few sites with "pseudo" namespaces, e.g. "8800:Site" - but 8800 isnt a Namespace. But most of my sites have real namespaces, e.g. "NG:Site".
When i remove all namespaces out of my Localsettings.php, in my thoughts "NG" is a pseudo Namespace too - not declared anywhere.
But:
Internal Links (even if i type it direct in browser) to Sites in "NG" namespaces didnt work anymore (with and without "NG:") - 8800 sites do.
Can someone explain that to me? What happens with Sites which namespaces are deleted? And what is my fallacy about "if i delete Namespace NG it should be "pseudo" like 8800"?
Upvotes: 1
Views: 129
Reputation: 1041
You'll need to fix up all pages on the wiki when you delete or change namespaces in a way that may affect existing pages -- otherwise the wiki can no longer "see" those pages. This is because titles in the database are stored as (namespace id, remaining title text) pairs. So some "OldNS:Title" would have gotten stored as something like (104, "Title") ... now that you've removed it, when the wiki goes looking for something called "OldNS:Title" it gets parsed into (0, "OldNS:Title") and there's no match between the two.
There is a maintenance script to fix up these problems; for some cases namespaceDupes.php works and is faster, for this case you may need to run cleanupTitles.php which is more thorough but slower.
Upvotes: 2