- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/event_user_view.php
- Класс: CAllSocNetEventUserView
- Вызов: CAllSocNetEventUserView::Delete
static function Delete($entityType, $entityID, $feature = false, $event = false)
{
global $DB;
$arSocNetAllowedSubscribeEntityTypes = CSocNetAllowed::GetAllowedEntityTypes();
$arSocNetFeaturesSettings = CSocNetAllowed::GetAllowedFeatures();
$arSocNetLogEvents = CSocNetAllowed::GetAllowedLogEvents();
$entityType = trim($entityType);
if (!in_array($entityType, CSocNetAllowed::GetAllowedEntityTypes()))
{
$GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_EUV_INCORRECT_ENTITY_TYPE"), "ERROR_INCORRECT_ENTITY_TYPE");
return false;
}
$entityID = intval($entityID);
if ($entityID <= 0)
{
$GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_EUV_EMPTY_ENTITY_ID"), "ERROR_EMPTY_ENTITY_ID");
return false;
}
$strWhere = " WHERE ENTITY_TYPE = '".$entityType."' AND ENTITY_ID = ".$entityID;
if ($feature)
{
if ($event)
$strWhere .= " AND EVENT_ID = '".$event."'";
else
{
$event_id = array();
if (
(
array_key_exists($feature, $arSocNetLogEvents)
&& array_key_exists("ENTITIES", $arSocNetLogEvents[$feature])
&& array_key_exists($entityType, $arSocNetLogEvents[$feature]["ENTITIES"])
)
||
(
array_key_exists($feature, $arSocNetFeaturesSettings)
&& array_key_exists("subscribe_events", $arSocNetFeaturesSettings[$feature])
&& count($arSocNetFeaturesSettings[$feature]["subscribe_events"]) > 0
)
)
{
if (array_key_exists($feature, $arSocNetLogEvents))
{
$event_id[] = $feature;
if (
array_key_exists("COMMENT_EVENT", $arSocNetLogEvents[$feature])
&& is_array($arSocNetLogEvents[$feature]["COMMENT_EVENT"])
&& array_key_exists("EVENT_ID", $arSocNetLogEvents[$feature]["COMMENT_EVENT"])
&& $arSocNetLogEvents[$feature]["COMMENT_EVENT"]["EVENT_ID"] <> ''
)
$event_id[] = $arSocNetLogEvents[$feature]["COMMENT_EVENT"]["EVENT_ID"];
}
if (
array_key_exists($feature, $arSocNetFeaturesSettings)
&& array_key_exists("subscribe_events", $arSocNetFeaturesSettings[$feature])
&& count($arSocNetFeaturesSettings[$feature]["subscribe_events"]) > 0
)
{
foreach ($arSocNetFeaturesSettings[$feature]["subscribe_events"] as $event_id_tmp => $arEventIDTmp)
{
if (
array_key_exists("NO_SET", $arEventIDTmp)
&& $arEventIDTmp["NO_SET"]
)
{
continue;
}
$event_id[] = $event_id_tmp;
if (
array_key_exists("COMMENT_EVENT", $arEventIDTmp)
&& is_array($arEventIDTmp["COMMENT_EVENT"])
&& array_key_exists("EVENT_ID", $arEventIDTmp["COMMENT_EVENT"])
&& $arEventIDTmp["COMMENT_EVENT"]["EVENT_ID"] <> ''
)
$event_id[] = $arEventIDTmp["COMMENT_EVENT"]["EVENT_ID"];
}
}
$event_id = array_unique($event_id);
$strWhere .= " AND (";
$i = 0;
foreach ($event_id as $ev)
{
if ($i > 0)
$strWhere .= " OR ";
$strWhere .= "EVENT_ID = '".$ev."'";
$i++;
}
$strWhere .= ")";
}
}
}
$bSuccess = $DB->Query("DELETE FROM b_sonet_event_user_view".$strWhere, true);
return $bSuccess;
}