• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/group_subject.php
  • Класс: CAllSocNetGroupSubject
  • Вызов: CAllSocNetGroupSubject::Update
static function Update($ID, $arFields)
{
	global $DB, $CACHE_MANAGER;

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

	$ID = intval($ID);

	$arFields1 = BitrixSocialnetworkUtil::getEqualityFields($arFields);

	if (!CSocNetGroupSubject::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)."'";
			}
		}
	}

	$strUpdate = $DB->PrepareUpdate("b_sonet_group_subject", $arFields);
	BitrixSocialnetworkUtil::processEqualityFieldsToUpdate($arFields1, $strUpdate);

	if ($strUpdate <> '')
	{
		$strSql =
			"UPDATE b_sonet_group_subject SET ".
			"	".$strUpdate." ".
			"WHERE ID = ".$ID." ";
		$DB->Query($strSql, False, "File: ".__FILE__."
Line: ".__LINE__); if(count($arSiteID)>0) { $strSql = "DELETE FROM b_sonet_group_subject_site WHERE SUBJECT_ID=".$ID; $DB->Query($strSql, false, "FILE: ".__FILE__."
LINE: ".__LINE__); $strSql = "INSERT INTO b_sonet_group_subject_site(SUBJECT_ID, SITE_ID) ". "SELECT ".$ID.", LID ". "FROM b_lang ". "WHERE LID IN (".$str_SiteID.") "; $DB->Query($strSql, false, "FILE: ".__FILE__."
LINE: ".__LINE__); } $events = GetModuleEvents("socialnetwork", "OnSocNetGroupSubjectUpdate"); while ($arEvent = $events->Fetch()) { ExecuteModuleEventEx($arEvent, array($ID, &$arFields)); } if (CACHED_b_sonet_group_subjects != false) $CACHE_MANAGER->CleanDir("b_sonet_group_subjects"); } else $ID = False; return $ID; }