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

	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_VIEW" => new BitrixMainDBSqlExpression($helper->getCurrentDateTimeFunction()),
	);

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

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

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

	if(defined("BX_COMP_MANAGED_CACHE"))
	{
		$CACHE_MANAGER->ClearByTag("sonet_group_view_U".$userId);
	}
}