closedir($directory); } $arComponentParameters["PARAMETERS"]["FORUM_THEME"] = array("PARENT" => "FORUM_SETTINGS", "NAME" => GetMessage("F_THEMES"), "TYPE" => "LIST", "VALUES" => $arThemes, "MULTIPLE" => "N", "DEFAULT" => "blue", "ADDITIONAL_VALUES" => "Y"); $arRes = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFields("FORUM_MESSAGE", 0, LANGUAGE_ID); $F_USER_FIELDS = array(); if (!empty($arRes)) { foreach ($arRes as $key => $val) { $F_USER_FIELDS[$val["FIELD_NAME"]] = empty($val["EDIT_FORM_LABEL"]) ? $val["FIELD_NAME"] : $val["EDIT_FORM_LABEL"]; } } $arComponentParameters["PARAMETERS"]["USER_FIELDS_FORUM"] = array("PARENT" => "FORUM_SETTINGS", "NAME" => GetMessage("SONET_USER_FIELDS_FORUM"), "TYPE" => "LIST", "VALUES" => $F_USER_FIELDS, "MULTIPLE" => "Y", "DEFAULT" => array("UF_FORUM_MESSAGE_DOC")); } if (IsModuleInstalled("vote")) { $arComponentParameters["PARAMETERS"]["SHOW_VOTE"] = array("PARENT" => "FORUM_SETTINGS", "NAME" => GetMessage("F_SHOW_VOTE"), "TYPE" => "CHECKBOX", "DEFAULT" => "N", "REFRESH" => "Y"); if ($arCurrentValues["SHOW_VOTE"] == "Y" && CModule::IncludeModule("vote")) { $rVoteChannels = CAllVoteChannel::GetList($by, $order, array('ACTIVE' => 'Y'), $is_filtered); if ($rVoteChannels) { __IncludeLang($_SERVER["DOCUMENT_ROOT"] . BX_PERSONAL_ROOT . "/components/bitrix/voting.current/lang/" . LANGUAGE_ID . "/.parameters.php"); $defaultVoteChannel = -1; while ($arVoteChannel = $rVoteChannels->Fetch()) { $arVoteChannels[$arVoteChannel['ID']] = "[" . $arVoteChannel["ID"] . "]" . htmlspecialcharsbx($arVoteChannel['TITLE']); if ($arVoteChannel['SYMBOLIC_NAME'] == 'SOCIALNETWORK') { $defaultVoteChannel = $arVoteChannel['ID']; } } $arComponentParameters["PARAMETERS"]["VOTE_CHANNEL_ID"] = array("PARENT" => "FORUM_SETTINGS", "NAME" => GetMessage("F_VOTE_CHANNEL_ID"), "TYPE" => "LIST", "VALUES" => $arVoteChannels, "MULTIPLE" => "N", "DEFAULT" => $defaultVoteChannel); $arComponentParameters["PARAMETERS"]["VOTE_TEMPLATE"] = array("PARENT" => "FORUM_SETTINGS", "NAME" => GetMessage("F_VOTE_TEMPLATE"), "TYPE" => "LIST", "VALUES" => array(".default" => GetMessage("F_VOTE_TEMPLATE_DEFAULT"), "light" => GetMessage("F_VOTE_TEMPLATE_LIGHT"), "main_page" => GetMessage("F_VOTE_TEMPLATE_MAIN_PAGE")), "DEFAULT" => "light", "MULTIPLE" => "N", "ADDITIONAL_VALUES" => "Y"); $arComponentParameters["PARAMETERS"]["VOTE_UNIQUE"] = array("VALUES" => array("1" => GetMessage("F_VOTE_UNIQUE_SESSION"), "2" => GetMessage("F_VOTE_UNIQUE_COOKIE_ONLY"), "4" => GetMessage("F_VOTE_UNIQUE_IP_ONLY"), "8" => GetMessage("F_VOTE_UNIQUE_USER_ID_ONLY")), "PARENT" => "FORUM_SETTINGS", "NAME" => GetMessage("F_VOTE_UNIQUE"), "TYPE" => "LIST", "MULTIPLE" => "Y", "ADDITIONAL_VALUES" => "N", "DEFAULT" => array(1, 2, 4, 8)); $arComponentParameters["PARAMETERS"]["VOTE_UNIQUE_IP_DELAY"] = array("DEFAULT" => "10 D", "PARENT" => "FORUM_SETTINGS", "NAME" => GetMessage("F_VOTE_UNIQUE_IP_DELAY"), "TYPE" => "CUSTOM", "JS_FILE" => "/bitrix/js/vote/comp_props.js", "JS_EVENT" => "ComponentPropsVoteIPDelay", "JS_LANG" => array("SECONDS" => GetMessage("F_VOTE_SECONDS"), "MINUTES" => GetMessage("F_VOTE_MINUTES"), "HOURS" => GetMessage("F_VOTE_HOURS"), "DAYS" => GetMessage("F_VOTE_DAYS"))); } }
public static function GetGroupPermission($channel_id, $arGroups = false, $params = array()) { global $DB, $USER, $CACHE_MANAGER, $APPLICATION; $err_mess = CAllVoteChannel::err_mess() . "<br>Function: GetGroupPermission<br>Line: "; $channel_id = trim($channel_id); $arGroups = $arGroups === false ? $USER->GetUserGroupArray() : $arGroups; $arGroups = !is_array($arGroups) || empty($arGroups) ? array(2) : $arGroups; $groups = implode(",", $arGroups); $params = is_array($params) ? $params : array("get_from_database" => $params); $cache = array("channel_id" => $channel_id, "groups" => $arGroups, "get_from_database" => $params["get_from_database"]); $cache_id = "b_vote_perm_" . md5(serialize($cache)); $permission = 0; if (VOTE_CACHE_TIME !== false && $CACHE_MANAGER->Read(VOTE_CACHE_TIME, $cache_id, "b_vote_perm")) { $permission = intval($CACHE_MANAGER->Get($cache_id)); } else { if ($params["get_from_database"] != "Y") { $permission = in_array(1, $USER->GetUserGroupArray()) || $APPLICATION->GetGroupRight("vote") >= "W" ? 4 : $permission; } if ($permission <= 0 && !empty($groups)) { $strSql = "SELECT BVC2G.CHANNEL_ID, BVC.SYMBOLIC_NAME CHANNEL_SID, MAX(BVC2G.PERMISSION) as PERMISSION\n\t\t\t\tFROM b_vote_channel_2_group BVC2G\n\t\t\t\tINNER JOIN b_vote_channel BVC ON (BVC2G.CHANNEL_ID = BVC.ID)\n\t\t\t\tWHERE " . ($params["CHANNEL_SID"] != "Y" ? "BVC2G.CHANNEL_ID" : "BVC.SYMBOLIC_NAME") . "='" . $DB->ForSql($channel_id) . "' and GROUP_ID in ({$groups})\n\t\t\t\tGROUP BY BVC2G.CHANNEL_ID, BVC.SYMBOLIC_NAME"; $db_res = $DB->Query($strSql, false, $err_mess . __LINE__); if ($db_res && ($res = $db_res->Fetch())) { $permission = intval($res["PERMISSION"]); if (VOTE_CACHE_TIME !== false) { $cache["channel_id"] = $res["CHANNEL_SID"]; $cache_id = "b_vote_perm_" . md5(serialize($cache)); $CACHE_MANAGER->Set($cache_id, $permission); $cache["channel_id"] = trim($res["CHANNEL_ID"]); } } } if (VOTE_CACHE_TIME !== false) { $cache_id = "b_vote_perm_" . md5(serialize($cache)); $CACHE_MANAGER->Set($cache_id, $permission); } } return $permission; }