- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/log_tools.php
- Класс: CSocNetLogTools
- Вызов: CSocNetLogTools::GetDataFromRatingEntity
static function GetDataFromRatingEntity($rating_entity_type_id, $rating_entity_id, $bCheckRights = true)
{
static $blogPostEventIdList = null;
$rating_entity_type_id = preg_replace("/[^a-z0-9_-]/i", "", $rating_entity_type_id);
$rating_entity_id = (int)$rating_entity_id;
if (
$rating_entity_type_id == ''
|| $rating_entity_id <= 0
)
{
return false;
}
$log_type = '';
switch ($rating_entity_type_id)
{
case "BLOG_POST":
$log_type = "log";
if ($blogPostEventIdList === null)
{
$blogPostLivefeedProvider = new BitrixSocialnetworkLivefeedBlogPost;
$blogPostEventIdList = $blogPostLivefeedProvider->getEventId();
}
$log_event_id = array_merge($blogPostEventIdList, array("idea"));
break;
case "BLOG_COMMENT":
$log_type = "comment";
$log_event_id = array("blog_comment", "photo_comment");
break;
case "FORUM_TOPIC":
$log_type = "log";
$log_event_id = array("forum");
if (CModule::IncludeModule("forum"))
{
$dbForumMessage = CForumMessage::GetList(
array("ID" => "ASC"),
array("TOPIC_ID" => $rating_entity_id),
false,
1
);
if ($arForumMessage = $dbForumMessage->Fetch())
{
$rating_entity_id = $arForumMessage["ID"];
}
}
break;
case "FORUM_POST":
$log_type = "comment";
$forumPostLivefeedProvider = new BitrixSocialnetworkLivefeedForumPost();
$log_event_id = $forumPostLivefeedProvider->getEventId();
break;
case "IBLOCK_ELEMENT":
$log_type = "log";
$log_event_id = array("photo_photo", "files", "commondocs", "wiki");
break;
case "INTRANET_NEW_USER":
$log_type = "log";
$log_event_id = array("intranet_new_user");
break;
case "INTRANET_NEW_USER_COMMENT":
$log_type = "comment";
$log_event_id = array("intranet_new_user_comment");
break;
case "BITRIX24_NEW_USER":
$log_type = "log";
$log_event_id = array("bitrix24_new_user");
break;
case "BITRIX24_NEW_USER_COMMENT":
$log_type = "comment";
$log_event_id = array("bitrix24_new_user_comment");
break;
case "VOTING":
$log_type = "log";
if ($blogPostEventIdList === null)
{
$blogPostLivefeedProvider = new BitrixSocialnetworkLivefeedBlogPost;
$blogPostEventIdList = $blogPostLivefeedProvider->getEventId();
}
$log_event_id = $blogPostEventIdList;
if (CModule::IncludeModule("blog"))
{
$rsBlogPost = CBlogPost::GetList(
array("ID" => "DESC"),
array("UF_BLOG_POST_VOTE" => $rating_entity_id),
false,
array("nTopCount" => 1),
array("ID")
);
if ($arBlogPost = $rsBlogPost->Fetch())
{
$rating_entity_id = $arBlogPost["ID"];
}
}
break;
case "LISTS_NEW_ELEMENT":
$log_type = "log";
$log_event_id = array("lists_new_element");
break;
case "LOG_ENTRY":
$log_type = "log_entry";
break;
case "LOG_COMMENT":
$log_type = "log_comment";
break;
default:
}
$log_id = null;
$log_comment_id = null;
if ($log_type === "log")
{
$rsLogSrc = CSocNetLog::GetList(
array(),
array(
"EVENT_ID" => $log_event_id,
"SOURCE_ID" => $rating_entity_id
),
false,
false,
array("ID"),
array(
"CHECK_RIGHTS" => ($bCheckRights ? "Y" : "N"),
"USE_SUBSCRIBE" => "N"
)
);
if ($arLogSrc = $rsLogSrc->Fetch())
{
$log_id = $arLogSrc["ID"];
}
}
elseif ($log_type === "log_entry")
{
$rsLogSrc = CSocNetLog::GetList(
array(),
array(
"ID" => $rating_entity_id
),
false,
false,
array("ID"),
array(
"CHECK_RIGHTS" => ($bCheckRights ? "Y" : "N"),
"USE_SUBSCRIBE" => "N"
)
);
if ($arLogSrc = $rsLogSrc->Fetch())
$log_id = $arLogSrc["ID"];
}
elseif ($log_type === "comment")
{
$rsLogCommentSrc = CSocNetLogComments::GetList(
array(),
array(
"EVENT_ID" => $log_event_id,
"SOURCE_ID" => $rating_entity_id
),
false,
false,
array("ID", "LOG_ID"),
array(
"CHECK_RIGHTS" => ($bCheckRights ? "Y" : "N"),
"USE_SUBSCRIBE" => "N"
)
);
if ($arLogCommentSrc = $rsLogCommentSrc->Fetch())
{
$log_id = $arLogCommentSrc["LOG_ID"];
$log_comment_id = $arLogCommentSrc["ID"];
}
}
elseif ($log_type == "log_comment")
{
$rsLogCommentSrc = CSocNetLogComments::GetList(
array(),
array(
"ID" => $rating_entity_id
),
false,
false,
array("ID", "LOG_ID"),
array(
"CHECK_RIGHTS" => ($bCheckRights ? "Y" : "N"),
"USE_SUBSCRIBE" => "N"
)
);
if ($arLogCommentSrc = $rsLogCommentSrc->Fetch())
{
$log_id = $arLogCommentSrc["LOG_ID"];
$log_comment_id = $arLogCommentSrc["ID"];
}
}
if ($log_id > 0)
{
$arResult = array("LOG_ID" => $log_id);
if ($log_comment_id > 0)
$arResult["LOG_COMMENT_ID"] = $log_comment_id;
return $arResult;
}
else
return false;
}