%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/components/bitrix/socialnetwork.group.selector/ |
Current File : /home/bitrix/www/bitrix/components/bitrix/socialnetwork.group.selector/component.php |
<? if(!Defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); require_once("functions.php"); if (!CModule::IncludeModule("socialnetwork")) { ShowError(GetMessage("SONET_MODULE_NOT_INSTALL")); } $arResult["SELECTED"] = array(); if ($groupId = intval($arParams["SELECTED"])) { $arFilter = array("ID" => $groupId); if(!CSocNetUser::IsCurrentUserModuleAdmin()) $arFilter["CHECK_PERMISSIONS"] = $GLOBALS["USER"]->GetID(); $rsGroup = CSocNetGroup::GetList(Array(), $arFilter, false, false, array("ID", "SITE_ID", "NAME", "DESCRIPTION", "DATE_CREATE", "DATE_UPDATE", "ACTIVE", "VISIBLE", "OPENED", "CLOSED", "SUBJECT_ID", "OWNER_ID", "KEYWORDS", "IMAGE_ID", "NUMBER_OF_MEMBERS", "INITIATE_PERMS", "SPAM_PERMS", "DATE_ACTIVITY", "SUBJECT_NAME", "UF_*")); if ($arGroup = $rsGroup->Fetch()) { $arResult["SELECTED"][] = group2JSItem($arGroup); } } CSocNetTools::InitGlobalExtranetArrays(); $arResult["LAST_GROUPS"] = array(); $arGroupsFilter = array("SITE_ID" => SITE_ID); $arPopupOptions = CUserOptions::GetOption("socialnetwork", "groups_popup", array()); if (is_array($arPopupOptions) && strlen($arPopupOptions["last_selected"]) > 0) { $arFilter = array("SITE_ID" => SITE_ID, "ID" => array_unique(explode(',', $arPopupOptions["last_selected"]))); if(!CSocNetUser::IsCurrentUserModuleAdmin()) { $arFilter["CHECK_PERMISSIONS"] = $GLOBALS["USER"]->GetID(); } $rsGroups = CSocNetGroup::GetList(array("NAME" => "ASC"), $arFilter); while($arGroup = $rsGroups->Fetch()) { if ( isset($GLOBALS["arExtranetGroupID"]) && is_array($GLOBALS["arExtranetGroupID"]) && in_array($arGroup["ID"], $GLOBALS["arExtranetGroupID"]) ) { $arGroup["IS_EXTRANET"] = "Y"; } $arGroupTmp = group2JSItem($arGroup); if (!in_array($arGroupTmp, $arResult["SELECTED"])) { $arResult["LAST_GROUPS"][] = $arGroupTmp; } } $arResult["LAST_GROUPS"] = array_slice($arResult["LAST_GROUPS"], 0, 10); } $arResult["LAST_GROUPS"] = array_merge($arResult["SELECTED"], $arResult["LAST_GROUPS"]); $arParams["GROUPS_PAGE_SIZE"] = 50; $myGroupCache = new CPHPCache; $cachePath = str_replace(array(":", "//"), "/", "/".SITE_ID."/".$componentName); $cacheId = "socnet_user_groups_".SITE_ID.'_'.$arParams["GROUPS_PAGE_SIZE"]."_".$USER->GetID(); $cacheTime = 31536000; if ($myGroupCache->InitCache($cacheTime, $cacheId, $cachePath)) { $vars = $myGroupCache->GetVars(); $arResult["MY_GROUPS"] = $vars["arMyGroups"]; } else { if (defined("BX_COMP_MANAGED_CACHE")) { $GLOBALS["CACHE_MANAGER"]->StartTagCache($cachePath); $GLOBALS["CACHE_MANAGER"]->RegisterTag("sonet_user2group_U".$USER->GetID()); $GLOBALS["CACHE_MANAGER"]->RegisterTag("sonet_group"); } $arResult["MY_GROUPS"] = array(); $rsGroups = CSocNetUserToGroup::GetList( array("GROUP_NAME" => "ASC"), array( "USER_ID" => $USER->GetID(), "<=ROLE" => SONET_ROLES_USER, "GROUP_SITE_ID" => SITE_ID, "GROUP_ACTIVE" => "Y" ), false, array("nPageSize" => $arParams["GROUPS_PAGE_SIZE"], "bDescPageNumbering" => false), array("ID", "GROUP_ID", "GROUP_NAME", "GROUP_DESCRIPTION", "GROUP_IMAGE_ID") ); while($arGroup = $rsGroups->Fetch()) { if ( isset($GLOBALS["arExtranetGroupID"]) && is_array($GLOBALS["arExtranetGroupID"]) && in_array($arGroup["GROUP_ID"], $GLOBALS["arExtranetGroupID"]) ) { $arGroup["GROUP_IS_EXTRANET"] = "Y"; } $arResult["MY_GROUPS"][] = group2JSItem($arGroup, "GROUP_"); } if (defined("BX_COMP_MANAGED_CACHE")) $GLOBALS["CACHE_MANAGER"]->EndTagCache(); $myGroupCache->StartDataCache($cacheTime, $cacheId, $cachePath); $myGroupCache->EndDataCache(array("arMyGroups" => $arResult["MY_GROUPS"])); } if (isset($arParams["FEATURES_PERMS"]) && sizeof($arParams["FEATURES_PERMS"]) == 2) { filterByFeaturePerms($arResult["LAST_GROUPS"], $arParams["FEATURES_PERMS"]); filterByFeaturePerms($arResult["SELECTED"], $arParams["FEATURES_PERMS"]); filterByFeaturePerms($arResult["MY_GROUPS"], $arParams["FEATURES_PERMS"]); } if ( !isset($GLOBALS["arExtranetGroupID"]) || !isset($GLOBALS["arExtranetUserID"]) ) { CSocNetTools::InitGlobalExtranetArrays(); } $this->IncludeComponentTemplate(); ?>