- Модуль: timeman
- Путь к файлу: ~/bitrix/modules/timeman/classes/general/timeman_report_full.php
- Класс: CReportNotifications
- Вызов: CReportNotifications::AddComment_Report_Forum
static function AddComment_Report_Forum($arFields,$FORUM_ID,$arLog)
{
global $USER, $USER_FIELD_MANAGER;
$mess_id = false;
$dbReport = CTimeManReportFull::GetByID($arLog["SOURCE_ID"]);
$arReport = $dbReport->Fetch();
if(CModule::IncludeModule("forum") && $arReport)
{
$ufFileID = array();
$ufDocID = array();
if(!$userName = trim($USER->GetFormattedName(false)))
$userName = $USER->GetLogin();
if ($arReport["FORUM_TOPIC_ID"])
{
if (!CForumTopic::GetByID($arReport["FORUM_TOPIC_ID"]))
{
$arReport["FORUM_TOPIC_ID"] = false;
}
}
if (!$arReport["FORUM_TOPIC_ID"])
{
$arTopicFields = Array(
"TITLE"=>$arReport["DATE_FROM"]."-".$arReport["DATE_TO"],
"USER_START_ID"=>$arFields["USER_ID"],
"STATE"=>"Y",
"FORUM_ID"=>$FORUM_ID,
"USER_START_NAME"=>$userName,
"START_DATE"=>ConvertTimeStamp(time(),"FULL"),
"POSTS"=>0,
"VIEWS"=>0,
"APPROVED"=>"Y",
"LAST_POSTER_NAME"=>$userName,
"LAST_POST_DATE"=>ConvertTimeStamp(time(),"FULL"),
"LAST_MESSAGE_ID"=>0,
"XML_ID"=>"TIMEMAN_REPORT_".$arLog["SOURCE_ID"]
);
$TOPIC_ID = CForumTopic::Add($arTopicFields);
if($TOPIC_ID)
CTimeManReportFull::Update($arLog["SOURCE_ID"],Array("FORUM_TOPIC_ID"=>$TOPIC_ID));
}
else
$TOPIC_ID = $arReport["FORUM_TOPIC_ID"];
if ($TOPIC_ID)
{
$arFieldsP = array(
"AUTHOR_ID" => $arFields["USER_ID"],
"AUTHOR_NAME" => $userName,
"POST_MESSAGE" => $arFields["TEXT_MESSAGE"],
"FORUM_ID" => $FORUM_ID,
"TOPIC_ID" =>$TOPIC_ID,
"APPROVED" => "Y",
"PARAM2" => $arLog["SOURCE_ID"]
);
$USER_FIELD_MANAGER->EditFormAddFields("SONET_COMMENT", $arTmp);
if (is_array($arTmp))
{
if (array_key_exists("UF_SONET_COM_DOC", $arTmp))
$GLOBALS["UF_FORUM_MESSAGE_DOC"] = $arTmp["UF_SONET_COM_DOC"];
elseif (array_key_exists("UF_SONET_COM_FILE", $arTmp))
{
$arFieldsP["FILES"] = array();
foreach($arTmp["UF_SONET_COM_FILE"] as $file_id)
$arFieldsP["FILES"][] = array("FILE_ID" => $file_id);
}
}
$USER_FIELD_MANAGER->EditFormAddFields("FORUM_MESSAGE", $arFieldsP);
$mess_id = CForumMessage::Add($arFieldsP);
// get UF DOC value and FILE_ID there
if ($mess_id > 0)
{
$dbAddedMessageFiles = CForumFiles::GetList(array("ID" => "ASC"), array("MESSAGE_ID" => $mess_id));
while ($arAddedMessageFiles = $dbAddedMessageFiles->Fetch())
$ufFileID[] = $arAddedMessageFiles["FILE_ID"];
$ufDocID = $USER_FIELD_MANAGER->GetUserFieldValue("FORUM_MESSAGE", "UF_FORUM_MESSAGE_DOC", $mess_id, LANGUAGE_ID);
}
}
}
return Array(
"RATING_TYPE_ID" => "FORUM_POST",
"RATING_ENTITY_ID" => $mess_id,
"SOURCE_ID" => $mess_id,
"UF" => array(
"FILE" => $ufFileID,
"DOC" => $ufDocID
)
);
}