示例#1
0
文件: user.php 项目: rasuldev/torino
 public static function OnUserDelete($ID)
 {
     global $DB;
     if (!CSocNetGroup::__ValidateID($ID)) {
         return false;
     }
     $ID = IntVal($ID);
     $bSuccess = True;
     if (!CSocNetGroup::DeleteNoDemand($ID)) {
         if ($ex = $GLOBALS["APPLICATION"]->GetException()) {
             $err = $ex->GetString();
         }
         $GLOBALS["APPLICATION"]->ThrowException($err);
         $bSuccess = false;
     }
     if ($bSuccess) {
         CSocNetUserRelations::DeleteNoDemand($ID);
         CSocNetUserPerms::DeleteNoDemand($ID);
         CSocNetUserEvents::DeleteNoDemand($ID);
         CSocNetMessages::DeleteNoDemand($ID);
         CSocNetUserToGroup::DeleteNoDemand($ID);
         CSocNetLogEvents::DeleteNoDemand($ID);
         CSocNetLog::DeleteNoDemand($ID);
         CSocNetLogComments::DeleteNoDemand($ID);
         CSocNetFeatures::DeleteNoDemand($ID);
         CSocNetSubscription::DeleteEx($ID);
         CUserOptions::DeleteOption("socialnetwork", "~menu_" . SONET_ENTITY_USER . "_" . $ID, false, 0);
     }
     return $bSuccess;
 }
示例#2
0
 public static function Set($userID, $code, $value = false)
 {
     global $DB;
     if (!CSocNetGroup::__ValidateID($userID)) {
         return false;
     }
     $userID = IntVal($userID);
     $code = trim($code);
     if ($userID <= 0 || strlen($code) <= 0) {
         return false;
     }
     $value = $value == "Y" ? "Y" : "N";
     $rsSubscription = CSocNetSubscription::GetList(array(), array("USER_ID" => $userID, "CODE" => $code));
     if ($arSubscription = $rsSubscription->Fetch()) {
         if ($value != "Y") {
             CSocNetSubscription::Delete($arSubscription["ID"]);
         }
     } else {
         if ($value == "Y") {
             CSocNetSubscription::Add(array("USER_ID" => $userID, "CODE" => $code));
         }
     }
     if (defined("BX_COMP_MANAGED_CACHE")) {
         $GLOBALS["CACHE_MANAGER"]->ClearByTag("sonet_subscription_" . $code);
     }
     return true;
 }
示例#3
0
 function Update($ID, $arFields)
 {
     global $DB;
     if (!CSocNetGroup::__ValidateID($ID)) {
         return false;
     }
     $ID = IntVal($ID);
     $arFields1 = array();
     foreach ($arFields as $key => $value) {
         if (substr($key, 0, 1) == "=") {
             $arFields1[substr($key, 1)] = $value;
             unset($arFields[$key]);
         }
     }
     if (!CSocNetUserRelations::CheckFields("UPDATE", $arFields, $ID)) {
         return false;
     }
     $db_events = GetModuleEvents("socialnetwork", "OnBeforeSocNetUserRelationsUpdate");
     while ($arEvent = $db_events->Fetch()) {
         if (ExecuteModuleEventEx($arEvent, array($ID, $arFields)) === false) {
             return false;
         }
     }
     $arUserRelationOld = CSocNetUserRelations::GetByID($ID);
     $strUpdate = $DB->PrepareUpdate("b_sonet_user_relations", $arFields);
     foreach ($arFields1 as $key => $value) {
         if (strlen($strUpdate) > 0) {
             $strUpdate .= ", ";
         }
         $strUpdate .= $key . "=" . $value . " ";
     }
     if (strlen($strUpdate) > 0) {
         $strSql = "UPDATE b_sonet_user_relations SET " . "\t" . $strUpdate . " " . "WHERE ID = " . $ID . " ";
         $DB->Query($strSql, False, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         $events = GetModuleEvents("socialnetwork", "OnSocNetUserRelationsUpdate");
         while ($arEvent = $events->Fetch()) {
             ExecuteModuleEventEx($arEvent, array($ID, $arFields));
         }
         if ((!array_key_exists("SEND_MAIL", $arFields) || $arFields["SEND_MAIL"] != "N") && !IsModuleInstalled("im")) {
             $mailType = "";
             if ($arUserRelationOld["RELATION"] != SONET_RELATIONS_FRIEND && $arFields["RELATION"] == SONET_RELATIONS_FRIEND) {
                 $mailType = "AGREE_FRIEND";
             } elseif ($arUserRelationOld["RELATION"] != SONET_RELATIONS_BAN && $arFields["RELATION"] == SONET_RELATIONS_BAN) {
                 $mailType = "BAN_FRIEND";
             } elseif ($arUserRelationOld["RELATION"] != SONET_RELATIONS_REQUEST && $arFields["RELATION"] == SONET_RELATIONS_REQUEST) {
                 $mailType = "INVITE_FRIEND";
             }
             if (StrLen($mailType) > 0) {
                 CSocNetUserRelations::SendEvent($ID, $mailType);
             }
         }
         CSocNetSearch::OnUserRelationsChange($arUserRelationOld["FIRST_USER_ID"]);
         CSocNetSearch::OnUserRelationsChange($arUserRelationOld["SECOND_USER_ID"]);
     } else {
         $ID = False;
     }
     return $ID;
 }
示例#4
0
 function Update($ID, $arFields)
 {
     global $DB;
     if (!CSocNetGroup::__ValidateID($ID)) {
         return false;
     }
     $ID = IntVal($ID);
     $arFields1 = array();
     foreach ($arFields as $key => $value) {
         if (substr($key, 0, 1) == "=") {
             $arFields1[substr($key, 1)] = $value;
             unset($arFields[$key]);
         }
     }
     if (!CSocNetMessages::CheckFields("UPDATE", $arFields, $ID)) {
         return false;
     }
     $db_events = GetModuleEvents("socialnetwork", "OnBeforeSocNetMessagesUpdate");
     while ($arEvent = $db_events->Fetch()) {
         if (ExecuteModuleEventEx($arEvent, array($ID, $arFields)) === false) {
             return false;
         }
     }
     $strUpdate = $DB->PrepareUpdate("b_sonet_messages", $arFields);
     foreach ($arFields1 as $key => $value) {
         if (strlen($strUpdate) > 0) {
             $strUpdate .= ", ";
         }
         $strUpdate .= $key . "=" . $value . " ";
     }
     if (strlen($strUpdate) > 0) {
         $strSql = "UPDATE b_sonet_messages SET " . "\t" . $strUpdate . " " . "WHERE ID = " . $ID . " ";
         $DB->Query($strSql, False, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         $events = GetModuleEvents("socialnetwork", "OnSocNetMessagesUpdate");
         while ($arEvent = $events->Fetch()) {
             ExecuteModuleEventEx($arEvent, array($ID, $arFields));
         }
     } else {
         $ID = False;
     }
     return $ID;
 }
示例#5
0
 function GetByID($ID)
 {
     global $DB;
     if (!CSocNetGroup::__ValidateID($ID)) {
         return false;
     }
     $ID = IntVal($ID);
     $dbResult = CSocNetUserToGroup::GetList(array(), array("ID" => $ID), false, false, array("ID", "USER_ID", "GROUP_ID", "GROUP_VISIBLE", "GROUP_NAME", "ROLE", "DATE_CREATE", "DATE_UPDATE", "INITIATED_BY_TYPE", "INITIATED_BY_USER_ID", "MESSAGE"));
     if ($arResult = $dbResult->GetNext()) {
         return $arResult;
     }
     return False;
 }
示例#6
0
 function Update($ID, $arFields)
 {
     global $DB;
     if (!CSocNetGroup::__ValidateID($ID)) {
         return false;
     }
     $ID = IntVal($ID);
     $arUser2GroupOld = CSocNetUserToGroup::GetByID($ID);
     if (!$arUser2GroupOld) {
         $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_NO_USER2GROUP"), "ERROR_NO_USER2GROUP");
         return false;
     }
     $arFields1 = array();
     foreach ($arFields as $key => $value) {
         if (substr($key, 0, 1) == "=") {
             $arFields1[substr($key, 1)] = $value;
             unset($arFields[$key]);
         }
     }
     if (!CSocNetUserToGroup::CheckFields("UPDATE", $arFields, $ID)) {
         return false;
     }
     $db_events = GetModuleEvents("socialnetwork", "OnBeforeSocNetUserToGroupUpdate");
     while ($arEvent = $db_events->Fetch()) {
         if (ExecuteModuleEventEx($arEvent, array($ID, $arFields)) === false) {
             return false;
         }
     }
     $strUpdate = $DB->PrepareUpdate("b_sonet_user2group", $arFields);
     foreach ($arFields1 as $key => $value) {
         if (strlen($strUpdate) > 0) {
             $strUpdate .= ", ";
         }
         $strUpdate .= $key . "=" . $value . " ";
     }
     if (strlen($strUpdate) > 0) {
         $strSql = "UPDATE b_sonet_user2group SET " . "\t" . $strUpdate . " " . "WHERE ID = " . $ID . " ";
         $DB->Query($strSql, False, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         CSocNetGroup::SetStat($arUser2GroupOld["GROUP_ID"]);
         CSocNetSearch::OnUserRelationsChange($arUser2GroupOld["USER_ID"]);
         if (array_key_exists("GROUP_ID", $arFields) && $arUser2GroupOld["GROUP_ID"] != $arFields["GROUP_ID"]) {
             CSocNetGroup::SetStat($arFields["GROUP_ID"]);
         }
         $events = GetModuleEvents("socialnetwork", "OnSocNetUserToGroupUpdate");
         while ($arEvent = $events->Fetch()) {
             ExecuteModuleEventEx($arEvent, array($ID, $arFields));
         }
         global $arSocNetUserInRoleCache;
         if (!isset($arSocNetUserInRoleCache) || !is_array($arSocNetUserInRoleCache)) {
             $arSocNetUserInRoleCache = array();
         }
         if (array_key_exists($arUser2GroupOld["USER_ID"] . "_" . $arUser2GroupOld["GROUP_ID"], $arSocNetUserInRoleCache)) {
             unset($arSocNetUserInRoleCache[$arUser2GroupOld["USER_ID"] . "_" . $arUser2GroupOld["GROUP_ID"]]);
         }
         if (defined("BX_COMP_MANAGED_CACHE")) {
             $GLOBALS["CACHE_MANAGER"]->ClearByTag("sonet_user2group_G" . $arUser2GroupOld["GROUP_ID"]);
             $GLOBALS["CACHE_MANAGER"]->ClearByTag("sonet_user2group_U" . $arUser2GroupOld["USER_ID"]);
             $GLOBALS["CACHE_MANAGER"]->ClearByTag("sonet_user2group");
         }
     } else {
         $ID = False;
     }
     return $ID;
 }
示例#7
0
 /**
  * <p>Метод возвращает массив параметров записи.</p>
  *
  *
  * @param int $id  Код записи.
  *
  * @return array <p>Массив с ключами:<br><b>ID</b> - код записи,<br><b>USER_ID</b> - код
  * пользователя,<br><b>OPERATION_ID</b> - операция,<br><b>RELATION_TYPE</b> - тип отношений
  * между пользователями.</p> <br><br>
  *
  * @static
  * @link http://dev.1c-bitrix.ru/api_help/socialnetwork/classes/csocnetuserperms/getbyid.php
  * @author Bitrix
  */
 public static function GetByID($ID)
 {
     global $DB;
     if (!CSocNetGroup::__ValidateID($ID)) {
         return false;
     }
     $ID = IntVal($ID);
     $dbResult = CSocNetUserPerms::GetList(array(), array("ID" => $ID));
     if ($arResult = $dbResult->GetNext()) {
         return $arResult;
     }
     return False;
 }
示例#8
0
 function GetByID($ID, $bCheckPermissions = false)
 {
     global $DB, $USER;
     if (!CSocNetGroup::__ValidateID($ID)) {
         return false;
     }
     $ID = IntVal($ID);
     $cacheArrayKey = $bCheckPermissions ? "Y" : "N";
     if (is_array($GLOBALS["SONET_GROUP_CACHE"]) && is_array($GLOBALS["SONET_GROUP_CACHE"][$ID]) && is_array($GLOBALS["SONET_GROUP_CACHE"][$cacheArrayKey])) {
         return $GLOBALS["SONET_GROUP_CACHE"][$ID][$cacheArrayKey];
     } else {
         if (!$bCheckPermissions) {
             $cache = new CPHPCache();
             $cache_time = 31536000;
             $cache_id = "group_" . $ID . "_" . LANGUAGE_ID . "_" . CTimeZone::GetOffset();
             $cache_path = "/sonet/group/" . $ID . "/";
         }
         if (is_object($cache) && $cache->InitCache($cache_time, $cache_id, $cache_path)) {
             $arCacheVars = $cache->GetVars();
             $arResult = $arCacheVars["FIELDS"];
         } else {
             if (is_object($cache)) {
                 $cache->StartDataCache($cache_time, $cache_id, $cache_path);
             }
             $arFilter = array("ID" => $ID);
             if ($bCheckPermissions && $USER->GetID() > 0) {
                 $arFilter["CHECK_PERMISSIONS"] = $USER->GetID();
             }
             $dbResult = 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", "NUMBER_OF_MODERATORS", "INITIATE_PERMS", "SPAM_PERMS", "DATE_ACTIVITY", "SUBJECT_NAME", "UF_*"));
             if ($arResult = $dbResult->GetNext()) {
                 if (defined("BX_COMP_MANAGED_CACHE")) {
                     $GLOBALS["CACHE_MANAGER"]->StartTagCache($cache_path);
                     $GLOBALS["CACHE_MANAGER"]->RegisterTag("sonet_group_" . $ID);
                     $GLOBALS["CACHE_MANAGER"]->RegisterTag("sonet_group");
                 }
                 $arResult["NAME_FORMATTED"] = $arResult["NAME"];
             } else {
                 $arResult = false;
             }
             if (is_object($cache)) {
                 $arCacheData = array("FIELDS" => $arResult);
                 $cache->EndDataCache($arCacheData);
                 if (defined("BX_COMP_MANAGED_CACHE")) {
                     $GLOBALS["CACHE_MANAGER"]->EndTagCache();
                 }
             }
         }
         if (!array_key_exists("SONET_GROUP_CACHE", $GLOBALS) || !is_array($GLOBALS["SONET_GROUP_CACHE"])) {
             $GLOBALS["SONET_GROUP_CACHE"] = array();
         }
         if (!array_key_exists($ID, $GLOBALS["SONET_GROUP_CACHE"]) || !is_array($GLOBALS["SONET_GROUP_CACHE"][$cacheArrayKey])) {
             $GLOBALS["SONET_GROUP_CACHE"][$ID] = array();
         }
         $GLOBALS["SONET_GROUP_CACHE"][$ID][$cacheArrayKey] = $arResult;
         return $arResult;
     }
 }
示例#9
0
	function GetByID($ID)
	{
		global $DB;

		if (!CSocNetGroup::__ValidateID($ID))
			return false;

		$ID = IntVal($ID);

		$dbResult = CSocNetUserRelations::GetList(Array(), Array("ID" => $ID));
		if ($arResult = $dbResult->GetNext())
		{
			return $arResult;
		}

		return False;
	}
示例#10
0
文件: group.php 项目: rasuldev/torino
 /**
  * <p>Метод изменяет параметры группы с заданным идентификатором.</p> <p><b>Примечание</b>: при работе метода вызываются события <a href="http://dev.1c-bitrix.ru/api_help/socialnetwork/events/OnBeforeSocNetGroupUpdate.php">OnBeforeSocNetGroupUpdate</a> и <a href="http://dev.1c-bitrix.ru/api_help/socialnetwork/events/OnSocNetGroupUpdate.php">OnSocNetGroupUpdate</a>.</p>
  *
  *
  *
  *
  * @param int $ID  Идентификатор группы </htm
  *
  *
  *
  * @param array $arFields  Массив параметров группы, которые должны быть изменены. Ключами в
  * массиве являются названия параметров, а значениями - новые
  * значения. Допустимые ключи: <b>SITE_ID</b> - код сайта,<br><b>NAME</b> - название
  * группы,<br><b>DESCRIPTION</b> - описание группы,<br><b>VISIBLE</b> - флаг Y/N - видна ли
  * группа в списке групп,<br><b>OPENED</b> - флаг Y/N - открыта ли группа для
  * свободного вступления,<br><b>SUBJECT_ID</b> - код темы,<br><b>KEYWORDS</b> - ключевые
  * слова,<br><b>IMAGE_ID</b> - иконка группы,<br><b>INITIATE_PERMS</b> - кто имеет право на
  * приглашение пользователей в группу: SONET_ROLES_OWNER - только владелец
  * группы, SONET_ROLES_MODERATOR - владелец группы и модераторы группы,
  * SONET_ROLES_USER - все члены группы,<br><b>CLOSED</b> - флаг Y/N - является ли группа
  * архивной,<br><b>SPAM_PERMS</b> - кто имеет право на отправку сообщений в
  * группу: SONET_ROLES_OWNER - только владелец группы, SONET_ROLES_MODERATOR - владелец
  * группы и модераторы группы, SONET_ROLES_USER - все члены группы.
  *
  *
  *
  * @param bool $bAutoSubscribe = true Флаг автоподписки на уведомления. Необязательный. По умолчанию
  * равен true.
  *
  *
  *
  * @param bool $bClearCommonTag = true Необязательный. По умолчанию равен true.
  *
  *
  *
  * @return int <p>Метод возвращает код изменяемой группы или false в случае
  * ошибки.</p> <a name="examples"></a>
  *
  *
  * <h4>Example</h4> 
  * <pre>
  * &lt;?
  * $arFields = array(
  * 	"NAME" =&gt; $_POST["GROUP_NAME"],
  * 	"DESCRIPTION" =&gt; $_POST["GROUP_DESCRIPTION"],
  * );
  * if (!CSocNetGroup::Update($ID, $arFields))
  * {
  * 	if ($e = $GLOBALS["APPLICATION"]-&gt;GetException())
  * 		$errorMessage .= $e-&gt;GetString();
  * }
  * ?&gt;
  * </pre>
  *
  *
  * @static
  * @link http://dev.1c-bitrix.ru/api_help/socialnetwork/classes/CSocNetGroup/update.php
  * @author Bitrix
  */
 public static function Update($ID, $arFields, $bAutoSubscribe = true, $bClearCommonTag = true)
 {
     global $DB;
     if (!CSocNetGroup::__ValidateID($ID)) {
         return false;
     }
     $ID = IntVal($ID);
     $arGroupOld = CSocNetGroup::GetByID($ID);
     if (!$arGroupOld) {
         $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_NO_GROUP"), "ERROR_NO_GROUP");
         return false;
     }
     $arFields1 = array();
     foreach ($arFields as $key => $value) {
         if (substr($key, 0, 1) == "=") {
             $arFields1[substr($key, 1)] = $value;
             unset($arFields[$key]);
         }
     }
     if (!CSocNetGroup::CheckFields("UPDATE", $arFields, $ID)) {
         return false;
     } else {
         $arSiteID = array();
         if (is_set($arFields, "SITE_ID")) {
             if (is_array($arFields["SITE_ID"])) {
                 $arSiteID = $arFields["SITE_ID"];
             } else {
                 $arSiteID[] = $arFields["SITE_ID"];
             }
             $arFields["SITE_ID"] = false;
             $str_SiteID = "''";
             foreach ($arSiteID as $v) {
                 $arFields["SITE_ID"] = $v;
                 $str_SiteID .= ", '" . $DB->ForSql($v) . "'";
             }
         }
     }
     $db_events = GetModuleEvents("socialnetwork", "OnBeforeSocNetGroupUpdate");
     while ($arEvent = $db_events->Fetch()) {
         if (ExecuteModuleEventEx($arEvent, array($ID, &$arFields)) === false) {
             return false;
         }
     }
     if (array_key_exists("IMAGE_ID", $arFields) && is_array($arFields["IMAGE_ID"]) && (!array_key_exists("MODULE_ID", $arFields["IMAGE_ID"]) || strlen($arFields["IMAGE_ID"]["MODULE_ID"]) <= 0)) {
         $arFields["IMAGE_ID"]["MODULE_ID"] = "socialnetwork";
     }
     CFile::SaveForDB($arFields, "IMAGE_ID", "socialnetwork");
     $strUpdate = $DB->PrepareUpdate("b_sonet_group", $arFields);
     foreach ($arFields1 as $key => $value) {
         if (strlen($strUpdate) > 0) {
             $strUpdate .= ", ";
         }
         $strUpdate .= $key . "=" . $value . " ";
     }
     if (strlen($strUpdate) > 0) {
         $strSql = "UPDATE b_sonet_group SET " . "\t" . $strUpdate . " " . "WHERE ID = " . $ID . " ";
         $DB->Query($strSql, False, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         if (count($arSiteID) > 0) {
             $strSql = "DELETE FROM b_sonet_group_site WHERE GROUP_ID=" . $ID;
             $DB->Query($strSql, false, "FILE: " . __FILE__ . "<br> LINE: " . __LINE__);
             $strSql = "INSERT INTO b_sonet_group_site(GROUP_ID, SITE_ID) " . "SELECT " . $ID . ", LID " . "FROM b_lang " . "WHERE LID IN (" . $str_SiteID . ") ";
             $DB->Query($strSql, false, "FILE: " . __FILE__ . "<br> LINE: " . __LINE__);
             $arLogID = array();
             $dbResult = CSocNetLog::GetList(array(), array("LOG_RIGHTS" => "SG" . $ID), false, false, array("ID"));
             while ($arResult = $dbResult->Fetch()) {
                 $DB->Query("DELETE FROM b_sonet_log_site WHERE LOG_ID = " . $arResult["ID"] . "", false, "FILE: " . __FILE__ . "<br> LINE: " . __LINE__);
                 $DB->Query("\n\t\t\t\t\t\tINSERT INTO b_sonet_log_site(LOG_ID, SITE_ID)\n\t\t\t\t\t\tSELECT " . $arResult["ID"] . ", LID\n\t\t\t\t\t\tFROM b_lang\n\t\t\t\t\t\tWHERE LID IN (" . $str_SiteID . ")\n\t\t\t\t\t", false, "FILE: " . __FILE__ . "<br> LINE: " . __LINE__);
                 $arLogID[] = $arResult["ID"];
             }
             $dbResult = CSocNetLog::GetList(array(), array("!ID" => $arLogID, "ENTITY_ID" => $ID, "ENTITY_TYPE" => SONET_ENTITY_GROUP), false, false, array("ID"));
             while ($arResult = $dbResult->Fetch()) {
                 $DB->Query("DELETE FROM b_sonet_log_site WHERE LOG_ID = " . $arResult["ID"] . "", false, "FILE: " . __FILE__ . "<br> LINE: " . __LINE__);
                 $DB->Query("\n\t\t\t\t\t\tINSERT INTO b_sonet_log_site(LOG_ID, SITE_ID)\n\t\t\t\t\t\tSELECT " . $arResult["ID"] . ", LID\n\t\t\t\t\t\tFROM b_lang\n\t\t\t\t\t\tWHERE LID IN (" . $str_SiteID . ")\n\t\t\t\t\t", false, "FILE: " . __FILE__ . "<br> LINE: " . __LINE__);
             }
         }
         unset($GLOBALS["SONET_GROUP_CACHE"][$ID]);
         if (defined("BX_COMP_MANAGED_CACHE")) {
             if ($bClearCommonTag) {
                 $GLOBALS["CACHE_MANAGER"]->ClearByTag("sonet_group");
             }
             $GLOBALS["CACHE_MANAGER"]->ClearByTag("sonet_group_" . $ID);
             $GLOBALS["CACHE_MANAGER"]->ClearByTag("sonet_user2group_G" . $ID);
             $GLOBALS["CACHE_MANAGER"]->ClearByTag("sonet_user2group");
         }
         $GLOBALS["USER_FIELD_MANAGER"]->Update("SONET_GROUP", $ID, $arFields);
         $events = GetModuleEvents("socialnetwork", "OnSocNetGroupUpdate");
         while ($arEvent = $events->Fetch()) {
             ExecuteModuleEventEx($arEvent, array($ID, &$arFields));
         }
         if (CModule::IncludeModule("search")) {
             $arGroupNew = CSocNetGroup::GetByID($ID);
             if ($arGroupNew) {
                 if ($arGroupNew["ACTIVE"] == "N" && $arGroupOld["ACTIVE"] == "Y") {
                     CSearch::DeleteIndex("socialnetwork", "G" . $ID);
                 } elseif ($arGroupNew["ACTIVE"] == "Y") {
                     $BODY = CSocNetTextParser::killAllTags($arGroupNew["~DESCRIPTION"]);
                     $BODY .= $GLOBALS["USER_FIELD_MANAGER"]->OnSearchIndex("SONET_GROUP", $ID);
                     $arSearchIndexSiteID = array();
                     $rsGroupSite = CSocNetGroup::GetSite($ID);
                     while ($arGroupSite = $rsGroupSite->Fetch()) {
                         $arSearchIndexSiteID[$arGroupSite["LID"]] = str_replace("#group_id#", $ID, COption::GetOptionString("socialnetwork", "group_path_template", "/workgroups/group/#group_id#/", $arGroupSite["LID"]));
                     }
                     $arSearchIndex = array("SITE_ID" => $arSearchIndexSiteID, "LAST_MODIFIED" => $arGroupNew["DATE_ACTIVITY"], "PARAM1" => $arGroupNew["SUBJECT_ID"], "PARAM2" => $ID, "PARAM3" => "GROUP", "PERMISSIONS" => $arGroupNew["VISIBLE"] == "Y" ? array('G2') : array('SG' . $ID . '_A', 'SG' . $ID . '_E', 'SG' . $ID . '_K'), "PARAMS" => array("socnet_group" => $ID, "entity" => "socnet_group"), "TITLE" => $arGroupNew["~NAME"], "BODY" => $BODY, "TAGS" => $arGroupNew["~KEYWORDS"]);
                     CSearch::Index("socialnetwork", "G" . $ID, $arSearchIndex, True);
                 }
                 if ($arGroupNew["OPENED"] == "Y" && $arGroupOld["OPENED"] == "N") {
                     $dbRequests = CSocNetUserToGroup::GetList(array(), array("GROUP_ID" => $ID, "ROLE" => SONET_ROLES_REQUEST, "INITIATED_BY_TYPE" => SONET_INITIATED_BY_USER), false, false, array("ID"));
                     if ($dbRequests) {
                         $arIDs = array();
                         while ($arRequests = $dbRequests->GetNext()) {
                             $arIDs[] = $arRequests["ID"];
                         }
                         CSocNetUserToGroup::ConfirmRequestToBeMember($GLOBALS["USER"]->GetID(), $ID, $arIDs, $bAutoSubscribe);
                     }
                 }
             }
         }
     } elseif (!$GLOBALS["USER_FIELD_MANAGER"]->Update("SONET_GROUP", $ID, $arFields)) {
         $ID = False;
     }
     return $ID;
 }
示例#11
0
	/**
	 * <p>Возвращает параметры темы. Не порождает запросов к базе данных.</p>
	 *
	 *
	 *
	 *
	 * @param int $id  Код темы.
	 *
	 *
	 *
	 * @return array <p>Массив параметров темы. Массив имеет ключи:<br> ID - код темы,<br> SITE_ID
	 * - код сайта,<br> NAME - название. </p>
	 *
	 * @static
	 * @link http://dev.1c-bitrix.ru/api_help/socialnetwork/classes/CSocNetGroupSubject/GetByID.php
	 * @author Bitrix
	 */
	public static function GetByID($ID)
	{
		global $DB;

		if (!CSocNetGroup::__ValidateID($ID))
			return false;

		$ID = IntVal($ID);

		$dbResult = CSocNetGroupSubject::GetList(Array(), Array("ID" => $ID));
		if ($arResult = $dbResult->GetNext())
			return $arResult;

		return False;
	}
示例#12
0
	/**
	 * <p>Метод возвращает массив с параметрами сообщения.</p>
	 *
	 *
	 *
	 *
	 * @param int $id  Код сообщения.
	 *
	 *
	 *
	 * @return array <p>Возвращается массив с ключами:<br> ID - идентификатор сообщения,<br>
	 * FROM_USER_ID - код пользователя - отправителя сообщения,<br> TO_USER_ID - код
	 * пользователя - получателя сообщения,<br> MESSAGE - сообщение,<br> DATE_CREATE -
	 * дата создания сообщения,<br> DATE_VIEW - дата прочтения,<br> MESSAGE_TYPE - тип
	 * сообщения: SONET_MESSAGE_SYSTEM - системное, SONET_MESSAGE_PRIVATE -
	 * пользовательское,<br> FROM_DELETED - флаг (Y/N) удаления сообщения
	 * отправителем,<br> TO_DELETED - флаг (Y/N) удаления сообщения
	 * получателем.</p>
	 *
	 *
	 * <h4>See Also</h4> 
	 * <ul> <li><a
	 * href="http://dev.1c-bitrix.ru/api_help/socialnetwork/classes/CSocNetMessages/GetList.php">CSocNetMessages::GetList</a></li>
	 * </ul>
	 *
	 *
	 * @static
	 * @link http://dev.1c-bitrix.ru/api_help/socialnetwork/classes/CSocNetMessages/GetByID.php
	 * @author Bitrix
	 */
	public static function GetByID($ID)
	{
		global $DB;

		if (!CSocNetGroup::__ValidateID($ID))
			return false;

		$ID = IntVal($ID);

		$dbResult = CSocNetMessages::GetList(Array(), Array("ID" => $ID, "IS_LOG_ALL" => "Y"));
		if ($arResult = $dbResult->GetNext())
		{
			return $arResult;
		}

		return False;
	}