Extension:SpecialPagesOrganizer

On the standard MediaWiki distribution, the Specialpages special page (the one that lists all the Special Pages) is badly organized and hard to navigate. In the standard version the special pages are listed in alphabetical order and with a large amount of pages it becomes impossible to navigate. The normal way to overcome this order is to hack the code and modify SpecialSpecialpages.php, however sometimes that is unwanted. This extension provides an easy way to reorder your pages and organize them under any heading without leaving LocalSettings.php.

Old Way
The old way involved opening SpecialSpecialpages.php and recoding part of it with a giant case statement to sort all the special pages into various sections.

Installing

 * 1) Create a file called SpecialPagesOrganizer.php in your extensions directory.
 * 2) Copy and paste the SpecialPagesOrganizer code into the new file
 * 3) In LocalSettings.php, add the following line:
 * 4) In LocalSettings.php, create an array called $egOrderArray following the following template:

Examples
In my wiki, I use the following code in my LocalSettings.php to order the specialpages:

NOTE: If you want to add Special:Random to one of the $egOrderArrays, be sure to use "Randompage" rather than "Random"!

Changes

 * 0.3 - Fix "Warning: call_user_func(efReoderSpecial) [function.call-user-func]: First argument is expected to be a valid callback", "Fatal error: Call to a member function isListed on a non-object" and "Detected bug in an extension! Hook efReorderSpecial failed to return a value; should return true to continue hook processing or false to abort." (Schneelocke)
 * 0.2 - Extension modified to register properly on Special:Version page

Future Improvements

 * There is currently no error checking for this extension. If you put in a name of a specialpage that does not exist into $egOrderArray it will crash the script. Proper error checking will be added later to avoid this. Done. (Schneelocke)
 * A hook will be added to the extension for an extra extension I am planning for later
 * An optional default group that contains all the SpecialPages not included elsewhere in the custom array.