function phorum_joinable_groups() { $PHORUM = $GLOBALS["PHORUM"]; $joinablegroups = array(); $groups = phorum_db_get_groups(); $memberof = phorum_api_user_check_group_access(PHORUM_USER_GROUP_SUSPENDED, PHORUM_ACCESS_LIST); foreach ($groups as $group) { if (!isset($memberof[$group["group_id"]])) { if ($group["open"] == PHORUM_GROUP_OPEN) { $joinablegroups[] = array("group_id" => $group["group_id"], "name" => $group["name"]); } elseif ($group["open"] == PHORUM_GROUP_REQUIRE_APPROVAL) { $joinablegroups[] = array("group_id" => $group["group_id"], "name" => $group["name"] . " (*)"); } } } return $joinablegroups; }
$frm->show(); echo "<br /><hr class=\"PhorumAdminHR\" /><br /><a name=\"groups\"></a>"; $frm = new PhorumInputForm("", "post", "Update"); $frm->hidden("user_id", $_REQUEST["user_id"]); $frm->hidden("module", "users"); $frm->hidden("referrer", $referrer); $frm->hidden("section", "groups"); $extra_opts = ""; // if its an admin, let the user know that the admin will be able to act as a moderator no matter what if ($user["admin"]) { $row = $frm->addbreak("Edit Groups (Admins can act as a moderator of every group, regardless of these values)"); } else { $row = $frm->addbreak("Edit Groups"); } $groups = phorum_db_get_groups(0, TRUE); $usergroups = phorum_api_user_check_group_access(PHORUM_USER_GROUP_SUSPENDED, PHORUM_ACCESS_LIST, $_REQUEST["user_id"]); $arr = array("Add A Group..."); foreach ($groups as $group_id => $group) { if (!isset($usergroups[$group_id])) { $arr[$group_id] = $group["name"]; } } if (count($arr) > 1) { $frm->addrow("Add A Group", $frm->select_tag("new_group", $arr)); } if (is_array($usergroups)) { $group_options = array("remove" => "< Remove User From Group >", PHORUM_USER_GROUP_SUSPENDED => "Suspended", PHORUM_USER_GROUP_UNAPPROVED => "Unapproved", PHORUM_USER_GROUP_APPROVED => "Approved", PHORUM_USER_GROUP_MODERATOR => "Group Moderator"); foreach ($usergroups as $group_id => $group) { $group_perm = $group['user_status']; $group_info = phorum_db_get_groups($group_id); $frm->hidden("groups[{$group_id}]", "{$group_id}");
/** * Retrieve the groups and their subscription statuses for a user. * * @param integer $user_id * The user_id of the user for which to retrieve the groups. * * @return array * An array of groups for the user. The keys are the group ids. * The values are group information arrays. */ function phorum_api_user_get_groups($user_id) { // Retrieve information for all the groups for the user. $groups = phorum_api_user_check_group_access(PHORUM_USER_GROUP_SUSPENDED, PHORUM_ACCESS_LIST, $user_id); return $groups; }
$show_notify_for_pages = explode(",", $PHORUM["TMP"]["show_notify_for_pages"]); } else { $show_notify_for_pages = array('index', 'list', 'cc'); } // Check for moderator notifications that have to be shown. if (in_array(phorum_page, $show_notify_for_pages) && !empty($PHORUM['enable_moderator_notifications'])) { $forummodlist = phorum_api_user_check_access(PHORUM_USER_ALLOW_MODERATE_MESSAGES, PHORUM_ACCESS_LIST); if (count($forummodlist) > 0) { $PHORUM["user"]["NOTICE"]["MESSAGES"] = $PHORUM['DB']->get_unapproved_list($forummodlist, TRUE, 0, TRUE) > 0; $PHORUM["DATA"]["URL"]["NOTICE"]["MESSAGES"] = phorum_api_url(PHORUM_CONTROLCENTER_URL, "panel=" . PHORUM_CC_UNAPPROVED); } if (phorum_api_user_check_access(PHORUM_USER_ALLOW_MODERATE_USERS)) { $PHORUM["user"]["NOTICE"]["USERS"] = count($PHORUM['DB']->user_get_unapproved()) > 0; $PHORUM["DATA"]["URL"]["NOTICE"]["USERS"] = phorum_api_url(PHORUM_CONTROLCENTER_URL, "panel=" . PHORUM_CC_USERS); } $groups = phorum_api_user_check_group_access(PHORUM_USER_GROUP_MODERATOR, PHORUM_ACCESS_LIST); if (count($groups) > 0) { $PHORUM["user"]["NOTICE"]["GROUPS"] = count($PHORUM['DB']->get_group_members(array_keys($groups), PHORUM_USER_GROUP_UNAPPROVED)); $PHORUM["DATA"]["URL"]["NOTICE"]["GROUPS"] = phorum_api_url(PHORUM_CONTROLCENTER_URL, "panel=" . PHORUM_CC_GROUP_MODERATION); } } // A quick template variable for deciding whether or not to show // moderator notification. $PHORUM["user"]["NOTICE"]["SHOW"] = $PHORUM["user"]["NOTICE"]["MESSAGES"] || $PHORUM["user"]["NOTICE"]["USERS"] || $PHORUM["user"]["NOTICE"]["GROUPS"]; } /* * [hook] * common * * [description] * This hook gives modules a chance to override Phorum variables
$PHORUM['DATA']['URL']['CC4'] = phorum_get_url(PHORUM_CONTROLCENTER_URL, "panel=" . PHORUM_CC_SIGNATURE); $PHORUM['DATA']['URL']['CC5'] = phorum_get_url(PHORUM_CONTROLCENTER_URL, "panel=" . PHORUM_CC_MAIL); $PHORUM['DATA']['URL']['CC6'] = phorum_get_url(PHORUM_CONTROLCENTER_URL, "panel=" . PHORUM_CC_BOARD); $PHORUM['DATA']['URL']['CC7'] = phorum_get_url(PHORUM_CONTROLCENTER_URL, "panel=" . PHORUM_CC_PASSWORD); $PHORUM['DATA']['URL']['CC8'] = phorum_get_url(PHORUM_CONTROLCENTER_URL, "panel=" . PHORUM_CC_UNAPPROVED); $PHORUM['DATA']['URL']['CC9'] = phorum_get_url(PHORUM_CONTROLCENTER_URL, "panel=" . PHORUM_CC_FILES); $PHORUM['DATA']['URL']['CC10'] = phorum_get_url(PHORUM_CONTROLCENTER_URL, "panel=" . PHORUM_CC_USERS); $PHORUM['DATA']['URL']['CC14'] = phorum_get_url(PHORUM_CONTROLCENTER_URL, "panel=" . PHORUM_CC_PRIVACY); $PHORUM['DATA']['URL']['CC15'] = phorum_get_url(PHORUM_CONTROLCENTER_URL, "panel=" . PHORUM_CC_GROUP_MODERATION); $PHORUM['DATA']['URL']['CC16'] = phorum_get_url(PHORUM_CONTROLCENTER_URL, "panel=" . PHORUM_CC_GROUP_MEMBERSHIP); // Determine if the user files functionality is available. $PHORUM["DATA"]["MYFILES"] = $PHORUM["file_uploads"] || $PHORUM["user"]["admin"]; // Determine if the user is a moderator. $PHORUM["DATA"]["MESSAGE_MODERATOR"] = phorum_api_user_check_access(PHORUM_USER_ALLOW_MODERATE_MESSAGES, PHORUM_ACCESS_ANY); $PHORUM["DATA"]["USER_MODERATOR"] = phorum_api_user_check_access(PHORUM_USER_ALLOW_MODERATE_USERS, PHORUM_ACCESS_ANY); $PHORUM["DATA"]["GROUP_MODERATOR"] = phorum_api_user_check_group_access(PHORUM_USER_GROUP_MODERATOR, PHORUM_ACCESS_ANY); $PHORUM["DATA"]["MODERATOR"] = $PHORUM["DATA"]["USER_MODERATOR"] + $PHORUM["DATA"]["MESSAGE_MODERATOR"] + $PHORUM["DATA"]["GROUP_MODERATOR"] > 0; // If global email hiding is not enabled, then give the user a chance // to choose for hiding himself. $PHORUM['DATA']['SHOW_EMAIL_HIDE'] = empty($PHORUM['hide_email_addr']) ? 1 : 0; // If pm email notifications are enabled, then give the user a chance // to disable it. $PHORUM['DATA']['SHOW_PM_EMAIL_NOTIFY'] = !empty($PHORUM["allow_pm_email_notify"]); // The form action for the common form. $PHORUM["DATA"]["URL"]["ACTION"] = phorum_get_url(PHORUM_CONTROLCENTER_ACTION_URL); // fill the breadcrumbs-info $PHORUM['DATA']['BREADCRUMBS'][] = array('URL' => $PHORUM['DATA']['URL']['REGISTERPROFILE'], 'TEXT' => $PHORUM['DATA']['LANG']['MyProfile'], 'TYPE' => 'control'); $user = $PHORUM['user']; // Security messures. unset($user["password"]); unset($user["password_temp"]);