+ /**
+ * Add a page to a certain display group for Special:SpecialPages
+ *
+ * @param mixed $page (SpecialPage or string)
+ * @param string $group
+ * @static
+ */
+ static function setGroup( $page, $group ) {
+ global $wgSpecialPageGroups;
+ $name = is_object($page) ? $page->mName : $page;
+ $wgSpecialPageGroups[$name] = $group;
+ }
+
+ /**
+ * Add a page to a certain display group for Special:SpecialPages
+ *
+ * @param SpecialPage $page
+ * @static
+ */
+ static function getGroup( &$page ) {
+ global $wgSpecialPageGroups;
+ static $specialPageGroupsCache = array();
+ if( isset($specialPageGroupsCache[$page->mName]) ) {
+ return $specialPageGroupsCache[$page->mName];
+ }
+ $group = wfMsg('specialpages-specialpagegroup-'.strtolower($page->mName));
+ if( $group == ''
+ || wfEmptyMsg('specialpages-specialpagegroup-'.strtolower($page->mName), $group ) ) {
+ $group = isset($wgSpecialPageGroups[$page->mName])
+ ? $wgSpecialPageGroups[$page->mName]
+ : '-';
+ }
+ if( $group == '-' ) $group = 'other';
+ $specialPageGroupsCache[$page->mName] = $group;
+ return $group;
+ }
+