コード例 #1
0
 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));
 }
コード例 #2
0
ファイル: timeman.php プロジェクト: DarneoStudio/bitrix
             }
             $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();
コード例 #3
0
ファイル: component.php プロジェクト: mrdeadmouse/u136006
<?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();