function GetAccessPermissions($ID, $TYPE = "ONE") { global $CACHE_MANAGER; $ID = intVal($ID); $TYPE = $TYPE == "ONE" ? "ONE" : "ALL"; $cache_id = "b_forum_perms_" . $ID . "_all"; $arRes = array(); if ($ID <= 0) { return false; } elseif (!is_array($GLOBALS["FORUM_CACHE"]["FORUM"][$ID])) { $GLOBALS["FORUM_CACHE"]["FORUM"][$ID] = array(); } if (!array_key_exists("PERMISSIONS", $GLOBALS["FORUM_CACHE"]["FORUM"][$ID])) { if (CACHED_b_forum_perms !== false && $CACHE_MANAGER->Read(CACHED_b_forum_perms, $cache_id, "b_forum_perms")) { $GLOBALS["FORUM_CACHE"]["FORUM"][$ID]["PERMISSIONS"] = $CACHE_MANAGER->Get($cache_id); } else { $db_res = CForumNew::GetAccessPermsList(array(), array("FORUM_ID" => $ID)); while ($res = $db_res->Fetch()) { $arRes[$res["GROUP_ID"]] = $res["PERMISSION"]; } $GLOBALS["FORUM_CACHE"]["FORUM"][$ID]["PERMISSIONS"] = $arRes; if (CACHED_b_forum_perms !== false) { $CACHE_MANAGER->Set($cache_id, $GLOBALS["FORUM_CACHE"]["FORUM"][$ID]["PERMISSIONS"]); } } } $result = $GLOBALS["FORUM_CACHE"]["FORUM"][$ID]["PERMISSIONS"]; if ($TYPE == "ONE") { $result = array(); foreach ($GLOBALS["FORUM_CACHE"]["FORUM"][$ID]["PERMISSIONS"] as $key => $val) { $result[] = array($key, $val); } } return $result; }