• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/workgroupfavorites.php
  • Класс: BitrixSocialnetworkWorkgroupFavoritesTable
  • Вызов: WorkgroupFavoritesTable::set
static function set($params = array())
{
	global $USER, $CACHE_MANAGER;
	$res = false;

	if (
		!is_array($params)
		|| !isset($params['GROUP_ID'])
		|| intval($params['GROUP_ID']) <= 0
	)
	{
		throw new MainSystemException("Empty groupId.");
	}

	$groupId = intval($params['GROUP_ID']);

	$userId = (
		isset($params['USER_ID'])
		&& intval($params['USER_ID']) > 0
			? intval($params['USER_ID'])
			: $USER->getId()
	);

	if (intval($userId) <= 0)
	{
		throw new MainSystemException("Empty userId.");
	}

	$connection = BitrixMainApplication::getConnection();
	$helper = $connection->getSqlHelper();

	$insertFields = array(
		"USER_ID" => $userId,
		"GROUP_ID" => $groupId,
		"DATE_ADD" => new BitrixMainDBSqlExpression($helper->getCurrentDateTimeFunction()),
	);

	$updateFields = array(
		"DATE_ADD" => new BitrixMainDBSqlExpression($helper->getCurrentDateTimeFunction()),
	);

	$merge = $helper->prepareMerge(
		static::getTableName(),
		array("USER_ID", "GROUP_ID"),
		$insertFields,
		$updateFields
	);

	if ($merge[0] != "")
	{
		$res = $connection->query($merge[0]);
	}

	if(
		$res
		&& defined("BX_COMP_MANAGED_CACHE")
	)
	{
		$CACHE_MANAGER->clearByTag("sonet_group_favorites_U".$userId);
	}

	return $res;
}