public static function AddComment_Report_Forum($arFields, $FORUM_ID, $arLog) { global $USER, $DB; $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"]) { $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"]); $GLOBALS["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); } } } $GLOBALS["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 = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFieldValue("FORUM_MESSAGE", "UF_FORUM_MESSAGE_DOC", $mess_id, LANGUAGE_ID); } } } return array("SOURCE_ID" => $mess_id, "UF" => array("FILE" => $ufFileID, "DOC" => $ufDocID)); }
} $arManagers = CTimeMan::GetUserManagers($curUser); $res = CTimeManReportFull::Add($arFields); if ($res && $arFields["ACTIVE"] != "N" && !$bSameUser) { CReportNotifications::SendMessage($res); } } $_SESSION['report_files'] = array(); $CACHE_MANAGER->Clean(CUserReportFull::getInfoCacheId($curUser), 'timeman_report_info'); $CACHE_MANAGER->Clean(CReportSettings::getSettingsCacheId($curUser), 'timeman_report_settings'); } break; case "add_comment_full_report": $bReturnRes = true; $ID = intval($_POST["report_id"]); $dbReport = CTimeManReportFull::GetByID($ID); $report = $dbReport->Fetch(); if ($report && CModule::IncludeModule("forum")) { $OWNER = intval($report["USER_ID"]); $CURRENT_USER = $USER->GetID(); $arAccessUsers = CTimeMan::GetAccess(); $bCanEditAll = in_array('*', $arAccessUsers['WRITE']); $bCanReadAll = in_array('*', $arAccessUsers['READ']); $bCanAddComment = in_array($OWNER, $arAccessUsers['WRITE']) || CTimeMan::IsAdmin() || $bCanEditAll || $OWNER == $CURRENT_USER; if ($_POST["add_comment"] == "Y" && $bCanAddComment) { $arFields = array("REPORT_ID" => $ID, "COMMENT_TEXT" => $_POST["comment_text"], "USER_ID" => $CURRENT_USER, "REPORT_OWNER" => $OWNER); $comment_id = CReportNotifications::AddCommentToLog($arFields); ob_start(); $APPLICATION->IncludeComponent("bitrix:timeman.topic.reviews", "", array("REPORT_ID" => $ID), false); $res["COMMENTS"] = ob_get_contents(); ob_end_clean();
<?php if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die; } $arParams["FORUM_ID"] = intVal(COption::GetOptionInt("timeman", "report_forum_id", "")); $arParams["REPORT_ID"] = intVal($arParams["REPORT_ID"]); $arParams["ENTRY_ID"] = intVal($arParams["ENTRY_ID"]); $arResult["COMMENTS"] = array(); $user_url = COption::GetOptionString('intranet', 'path_user', '/company/personal/user/#USER_ID#/', $_REQUEST['site_id']); if ($arParams["FORUM_ID"]) { $FORUM_TOPIC_ID = 0; if ($arParams["REPORT_ID"]) { $dbReport = CTimeManReportFull::GetByID($arParams["REPORT_ID"]); $arReport = $dbReport->Fetch(); $FORUM_TOPIC_ID = $arReport["FORUM_TOPIC_ID"]; } else { if ($arParams['ENTRY_ID']) { $dbRes = CTimeManEntry::GetByID($arParams['ENTRY_ID']); $arEntry = $dbRes->Fetch(); $FORUM_TOPIC_ID = $arEntry["FORUM_TOPIC_ID"]; } } if ($FORUM_TOPIC_ID > 0) { CModule::IncludeModule("forum"); $parser = new forumTextParser(LANGUAGE_ID); $allow = forumTextParser::GetFeatures(CForumNew::GetByID($arParams["FORUM_ID"])); $db_res = CForumMessage::GetList(array("ID" => "ASC"), array("TOPIC_ID" => $FORUM_TOPIC_ID)); while ($ar_res = $db_res->Fetch()) { $dbAuthor = CUser::GetByID($ar_res["AUTHOR_ID"]); $arAuthor = $dbAuthor->Fetch();