*/ $wgExtensionFunctions[] = "userGroupExtension"; $wgExtensionCredits['specialpage'][] = array( 'name' => 'UserGroups', 'version' => '2007/04/05', 'author' => 'Austin Che', 'url' => 'http://openwetware.org/wiki/User:Austin_J._Che/Extensions/UserGroups', 'description' => 'Create user groups from pages on the wiki', ); function userGroupExtension() { global $wgMessageCache, $wgSpecialPages; $wgMessageCache->addMessages(array('group' => 'Group', )); $wgSpecialPages['Group'] = array('SpecialPage', 'Group'); } function wfSpecialGroup($par) { global $wgUser, $wgOut, $wgRequest, $wgUserGroups; $target = isset($par) ? $par : $wgRequest->getVal('target'); $page = Title::newFromURL($target); if (!is_object($page)) $wgUserGroups->enterGroupName(); else if (!$page->exists()) $wgOut->redirect($page->getLocalUrl()); // redirect to non-existing group page else { $action = $wgRequest->getVal('action'); if ($action == "raw") $wgUserGroups->printRawUsers($page); else $wgUserGroups->showGroup($page); } } class UserGroups { var $group_namespace; function enterGroupName() { global $wgOut; $title = Title::makeTitle(NS_SPECIAL, "Group"); $action = $title->escapeLocalUrl(); $group = wfMsg("group"); $wgOut->addHTML("
\n" ); } function printRawUsers($group) { global $wgOut; $wgOut->disable(); echo implode(" ", $this->getMembers($group)); } function showGroup($group) { global $wgOut, $wgUser; $skin = $wgUser->getSkin(); $wgOut->addHTML("" . $skin->makeLinkObj($group) . ""); $members = $this->getMembers($group); // ** print group hooks here $wgOut->addHTML("