• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/log_events.php
  • Класс: CAllSocNetLogEvents
  • Вызов: CAllSocNetLogEvents::GetSQLForEvent
static function GetSQLForEvent($entity_type, $entity_id, $event_id, $user_id, $transport = false, $visible = true, $arOfEntities = array())
{
	if (!in_array($entity_type, CSocNetAllowed::GetAllowedEntityTypes()))
	{
		return false;
	}

	if (intval($entity_id) <= 0)
		return false;

	$strSQL = "";
	
	if (
		is_array($arOfEntities)
		&& count($arOfEntities) > 0
	)
		$strOfEntities = "AND LE.USER_ID IN (".implode(",", $arOfEntities).")";
	else
		$strOfEntities = "";
		
	if (is_array($transport) && count($transport) > 0)
		$strTransport = "AND LE.TRANSPORT IN ('".implode("', '", $transport)."')";
	elseif(!is_array($transport) && $transport <> '')
		$strTransport = "AND LE.TRANSPORT = '".$transport."'";		
	else
		$strTransport = "";

	$strSQL .= "AND (
		(	
			LE.ENTITY_TYPE = '".$entity_type."'
			AND LE.ENTITY_ID = ".$entity_id."
			AND LE.ENTITY_CB = 'N'
			AND LE.EVENT_ID = '".$event_id."'
			".$strTransport."
		)";

	$arSocNetAllowedSubscribeEntityTypesDesc = CSocNetAllowed::GetAllowedEntityTypesDesc();

	if (
		array_key_exists("USE_CB_FILTER", $arSocNetAllowedSubscribeEntityTypesDesc[$entity_type])
		&& $arSocNetAllowedSubscribeEntityTypesDesc[$entity_type]["USE_CB_FILTER"] == "Y"
		&& intval($user_id) > 0
	)
	{
		$strSQL .= "
			OR 
			(
				LE.ENTITY_TYPE = '".SONET_SUBSCRIBE_ENTITY_USER."'
				AND LE.ENTITY_ID = ".$user_id."
				AND LE.ENTITY_CB = 'Y'
				AND 
				(
					LE.EVENT_ID = '".$event_id."'
					OR LE.EVENT_ID = 'all'								
				)
				".$strTransport."
			)";
	}

	$strSQL .= "
		OR
		(
			LE.ENTITY_TYPE = '".$entity_type."'
			AND LE.ENTITY_ID = ".$entity_id."
			AND LE.ENTITY_CB = 'N'
			AND LE.EVENT_ID = 'all'
			".$strTransport."
		)
		OR 
		(
			LE.ENTITY_TYPE = '".$entity_type."'
			AND LE.ENTITY_ID = 0
			AND LE.ENTITY_MY = 'Y'
			AND 
			(
				LE.EVENT_ID = '".$event_id."'
				OR LE.EVENT_ID = 'all'
			)
			".$strOfEntities."
			".$strTransport."
		)
		OR
		(
			LE.ENTITY_TYPE = '".$entity_type."'
			AND LE.ENTITY_ID = 0
			AND LE.ENTITY_MY = 'N'
			AND 
			(
				LE.EVENT_ID = '".$event_id."'
				OR LE.EVENT_ID = 'all'
			)
			".$strTransport."
		)
	)";

	return $strSQL;
}