- Модуль: 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;
}