%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/components/bitrix/socialnetwork.group_menu/ |
Current File : //home/bitrix/www/bitrix/components/bitrix/socialnetwork.group_menu/ajax.php |
<? define("NO_KEEP_STATISTIC", true); define("BX_STATISTIC_BUFFER_USED", false); define("NO_LANG_FILES", true); define("NOT_CHECK_PERMISSIONS", true); define("BX_PUBLIC_TOOLS", true); $lng = (isset($_REQUEST["lang"]) && is_string($_REQUEST["lang"])) ? trim($_REQUEST["lang"]): ""; $lng = substr(preg_replace("/[^a-z0-9_]/i", "", $lng), 0, 2); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/bx_root.php"); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); /** @global CDatabase $DB */ /** @global CUser $USER */ /** @global CMain $APPLICATION */ use Bitrix\Main\Localization\Loc; Loc::loadLanguageFile(__FILE__, $lng); header('Content-Type: application/x-javascript; charset='.LANG_CHARSET); if(CModule::IncludeModule("compression")) { CCompress::Disable2048Spaces(); } if (!CModule::IncludeModule("socialnetwork")) { echo CUtil::PhpToJsObject(Array('ERROR' => 'SONET_MODULE_NOT_INSTALLED')); die(); } if (!$USER->IsAuthorized()) { echo CUtil::PhpToJsObject(Array("ERROR" => "CURRENT_USER_NOT_AUTH")); die(); } $groupID = intval($_POST["groupID"]); if ($groupID <= 0) { echo CUtil::PhpToJsObject(Array("ERROR" => "EMPTY_GROUP_ID")); die(); } $action = $_POST["action"]; if (check_bitrix_sessid()) { if (in_array($action, array("set", "unset", "fav_set", "fav_unset"))) { if (in_array($action, array("set", "unset"))) { $userRole = CSocNetUserToGroup::GetUserRole($USER->GetID(), $groupID); if (!in_array($userRole, array(SONET_ROLES_OWNER, SONET_ROLES_MODERATOR, SONET_ROLES_USER))) { echo CUtil::PhpToJsObject(Array("ERROR" => "INCORRECT_USER_ROLE")); die(); } if (CSocNetSubscription::set($USER->GetID(), "SG".$groupID, ($action == "set" ? "Y" : "N"))) { $rsSubscription = CSocNetSubscription::getList( array(), array( "USER_ID" => $USER->GetID(), "CODE" => "SG".$groupID ) ); if ($arSubscription = $rsSubscription->fetch()) { echo CUtil::PhpToJsObject(Array( "SUCCESS" => "Y", "RESULT" => "Y" )); } else { echo CUtil::PhpToJsObject(Array( "SUCCESS" => "Y", "RESULT" => "N" )); } } } elseif(in_array($action, array("fav_set", "fav_unset"))) { $res = false; try { $res = \Bitrix\Socialnetwork\Item\WorkgroupFavorites::set(array( 'GROUP_ID' => $groupID, 'USER_ID' => $USER->getId(), 'VALUE' => ($action == 'fav_set' ? 'Y' : 'N') )); } catch (Exception $e) { echo CUtil::PhpToJsObject(Array("ERROR" => $e->getMessage())); } if ($res) { $groupItem = \Bitrix\Socialnetwork\Item\Workgroup::getById($groupID); $groupFields = $groupItem->getFields(); $groupUrlData = $groupItem->getGroupUrlData(array( 'USER_ID' => $USER->getId() )); $groupSiteList = array(); $resSite = \Bitrix\Socialnetwork\WorkgroupSiteTable::getList(array( 'filter' => array( '=GROUP_ID' => $groupID ), 'select' => array('SITE_ID') )); while ($groupSite = $resSite->fetch()) { $groupSiteList[] = $groupSite['SITE_ID']; } $result = Array( "SUCCESS" => "Y", "ID" => $groupID, "NAME" => $groupFields["NAME"], "URL" => $groupUrlData["URL"], "EXTRANET" => ( \Bitrix\Main\Loader::includeModule('extranet') && CExtranet::isIntranetUser() && in_array(CExtranet::getExtranetSiteID(), $groupSiteList) ? 'Y' : 'N' ) ); if ($action == 'fav_set') { $result["RESULT"] = "Y"; } else { $result["RESULT"] = "N"; } echo CUtil::PhpToJsObject($result); } else { echo CUtil::PhpToJsObject(Array("ERROR" => Loc::getMessage('SONET_GMA_ACTION_FAILED'))); } } } else { echo CUtil::PhpToJsObject(Array("ERROR" => "UNKNOWN_ACTION")); } } else { echo CUtil::PhpToJsObject(Array("ERROR" => "SESSION_ERROR")); } require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php"); ?>