</script> <?php print_form_header('forumpermission', 'doupdate'); if (empty($forumpermissionid)) { $forum = $vbulletin->forumcache["{$forumid}"]; $usergroup = $vbulletin->usergroupcache["{$usergroupid}"]; if (!$forum) { print_table_footer(); print_stop_message('invalid_forum_specified'); } else { if (!$usergroup) { print_table_footer(); print_stop_message('invalid_usergroup_specified'); } } $getperms = fetch_forum_permissions($usergroupid, $forumid); construct_hidden_code('forumpermission[usergroupid]', $usergroupid); construct_hidden_code('forumid', $forumid); } else { $getperms = $db->query_first("\n\t\t\tSELECT *\n\t\t\tFROM " . TABLE_PREFIX . "forumpermission\n\t\t\tWHERE forumpermissionid = {$forumpermissionid}\n\t\t"); if (!$getperms) { print_table_footer(); print_stop_message('invalid_forum_permissions_specified'); } $usergroup['title'] = $vbulletin->usergroupcache["{$getperms['usergroupid']}"]['title']; $forum['title'] = $vbulletin->forumcache["{$getperms['forumid']}"]['title']; construct_hidden_code('forumpermissionid', $forumpermissionid); } $forumpermission = convert_bits_to_array($getperms['forumpermissions'], $vbulletin->bf_ugp_forumpermissions); print_table_header(construct_phrase($vbphrase['edit_forum_permissions_for_usergroup_x_in_forum_y'], $usergroup['title'], $forum['title'])); print_description_row('
/** * Build the forum permissions for a specific forum, user or group * * @param int The forum ID to build permissions for (0 builds for all forums) * @param int The user to build the permissions for (0 will select the uid automatically) * @param int The group of the user to build permissions for (0 will fetch it) * @return array Forum permissions for the specific forum or forums */ function forum_permissions($fid = 0, $uid = 0, $gid = 0) { global $db, $cache, $groupscache, $forum_cache, $fpermcache, $mybb, $usercache, $cached_forum_permissions_permissions, $cached_forum_permissions; if ($uid == 0) { $uid = $mybb->user['uid']; } if (!$gid || $gid == 0) { if ($uid != 0 && $uid != $mybb->user['uid']) { if (!$usercache[$uid]) { $query = $db->simple_select("users", "*", "uid='{$uid}'"); $usercache[$uid] = $db->fetch_array($query); } $gid = $usercache[$uid]['usergroup'] . "," . $usercache[$uid]['additionalgroups']; $groupperms = usergroup_permissions($gid); } else { $gid = $mybb->user['usergroup']; if (isset($mybb->user['additionalgroups'])) { $gid .= "," . $mybb->user['additionalgroups']; } $groupperms = $mybb->usergroup; } } if (!is_array($forum_cache)) { $forum_cache = cache_forums(); if (!$forum_cache) { return false; } } if (!is_array($fpermcache)) { $fpermcache = $cache->read("forumpermissions"); } if ($fid) { if (!$cached_forum_permissions_permissions[$gid][$fid]) { $cached_forum_permissions_permissions[$gid][$fid] = fetch_forum_permissions($fid, $gid, $groupperms); } return $cached_forum_permissions_permissions[$gid][$fid]; } else { if (!$cached_forum_permissions[$gid]) { foreach ($forum_cache as $forum) { $cached_forum_permissions[$gid][$forum['fid']] = fetch_forum_permissions($forum['fid'], $gid, $groupperms); } } return $cached_forum_permissions[$gid]; } }