function GetForumsList() { $arGroup = array(); $arForum = array(); $db_res = CForumGroup::GetListEx(array(), array("LID" => LANG)); if ($db_res && ($res = $db_res->GetNext())) { do { $arGroup[intVal($res["ID"])] = $res["~NAME"]; } while ($res = $db_res->GetNext()); } $db_res = CForumNew::GetListEx(array("FORUM_GROUP_SORT" => "ASC", "FORUM_GROUP_ID" => "ASC", "SORT" => "ASC", "NAME" => "ASC"), array()); if ($db_res && ($res = $db_res->GetNext())) { do { $arForum[intVal($res["ID"])] = $res["~NAME"]; if (intVal($res["FORUM_GROUP_ID"]) > 0 && array_key_exists($res["FORUM_GROUP_ID"], $arGroup)) { $arForum[intVal($res["ID"])] .= " [" . $arGroup[$res["FORUM_GROUP_ID"]] . "]"; } if ($res["ACTIVE"] != "Y") { $arForum[intVal($res["ID"])] .= " N/A"; } } while ($res = $db_res->GetNext()); } return $arForum; }
<?php if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die; } if (!CModule::IncludeModule("forum")) { return; } $arLanguages = array(); $rsLanguage = CLanguage::GetList($by, $order, array()); while ($arLanguage = $rsLanguage->Fetch()) { $arLanguages[] = $arLanguage["LID"]; } // Forum group $arGroupID = array("GENERAL" => 0, "COMMENTS" => 0, "HIDDEN" => 0); $dbExistsGroup = CForumGroup::GetListEx(array(), array("LID" => LANGUAGE_ID)); while ($arExistsGroup = $dbExistsGroup->Fetch()) { foreach ($arGroupID as $xmlID => $ID) { if ($arExistsGroup["NAME"] == GetMessage($xmlID . "_GROUP_NAME")) { $arGroupID[$xmlID] = $arExistsGroup["ID"]; } } } $sort = 1; foreach ($arGroupID as $xmlID => $groupID) { if ($groupID > 0) { continue; } $arNewGroup = array("SORT" => $sort++, "LANG" => array()); foreach ($arLanguages as $languageID) { $arMessages = WizardServices::IncludeServiceLang("index.php", $languageID, $bReturnArray = true);
function GetByLang($LANGUAGE_ID) { global $CACHE_MANAGER; $LANGUAGE_ID = !empty($LANGUAGE_ID) ? $LANGUAGE_ID : LANGUAGE_ID; $cache_id = "b_forum_group" . $LANGUAGE_ID; if (!is_array($GLOBALS["FORUM_CACHE"]["GROUPS"])) { $GLOBALS["FORUM_CACHE"]["GROUPS"] = array(); } if (!array_key_exists($LANGUAGE_ID, $GLOBALS["FORUM_CACHE"]["GROUPS"])) { if (CACHED_b_forum_group !== false && $CACHE_MANAGER->Read(CACHED_b_forum_group, $cache_id, "b_forum_group")) { $GLOBALS["FORUM_CACHE"]["GROUPS"][$LANGUAGE_ID] = $CACHE_MANAGER->Get($cache_id); } else { $arRes = array(); $db_res = CForumGroup::GetListEx(array("LEFT_MARGIN" => "ASC", "SORT" => "ASC"), array("LID" => $LANGUAGE_ID)); while ($res = $db_res->GetNext()) { $arRes[intVal($res["ID"])] = $res; } $GLOBALS["FORUM_CACHE"]["GROUPS"][$LANGUAGE_ID] = $arRes; if (CACHED_b_forum_group !== false) { $CACHE_MANAGER->Set($cache_id, $GLOBALS["FORUM_CACHE"]["GROUPS"][$LANGUAGE_ID]); } } } return $GLOBALS["FORUM_CACHE"]["GROUPS"][$LANGUAGE_ID]; }
} /* User */ $res = CForumUser::GetByUSER_ID(1); if (empty($res) || !is_array($res)) { $arFields = array("=LAST_VISIT" => $DB->GetNowFunction(), "USER_ID" => 1); $ID = CForumUser::Add($arUserFields); } /* Vote */ $res = CForumUserPoints::GetByID(1, 1); if (!$res) { $arFields = array("POINTS" => 1000, "FROM_USER_ID" => 1, "TO_USER_ID" => 1); $ID = CForumUserPoints::Add($arFields); } // Forum group $arGroup = array("PUBLIC" => 0, "PARTNER" => 0, "COMMENTS" => 0); $db_res = CForumGroup::GetListEx(array(), array("LID" => LANGUAGE_ID)); if ($db_res && ($res = $db_res->Fetch())) { do { if (GetMessage("F_GROUP_PUBLIC") == $res["NAME"]) { $arGroup["PUBLIC"] = intVal($res["ID"]); } elseif (GetMessage("F_GROUP_PARTNER") == $res["NAME"]) { $arGroup["PARTNER"] = intVal($res["ID"]); } elseif (GetMessage("F_GROUP_COMMENTS") == $res["NAME"]) { $arGroup["COMMENTS"] = intVal($res["ID"]); } } while ($res = $db_res->Fetch()); } if (array_sum($arGroup) <= 0) { // Set Group foreach ($arGroup as $key => $res) { if ($res > 0) {