Exemple #1
0
 public static function AddCrmActivityComment($arFields)
 {
     if (!CModule::IncludeModule("forum")) {
         return false;
     }
     $ufFileID = array();
     $ufDocID = array();
     $messageID = false;
     $dbResult = CSocNetLog::GetList(array(), array("ID" => $arFields["LOG_ID"]), false, false, array('ID', 'ENTITY_ID', 'SOURCE_ID', 'SITE_ID', 'TITLE', 'PARAMS'));
     if ($arLog = $dbResult->Fetch()) {
         $dbCrmActivity = CCrmActivity::GetList(array(), array('ID' => $arLog['ENTITY_ID'], 'CHECK_PERMISSIONS' => 'N'));
         if ($arCrmActivity = $dbCrmActivity->Fetch()) {
             if ($arCrmActivity['TYPE_ID'] == CCrmActivityType::Task && CModule::IncludeModule('tasks')) {
                 $userID = $GLOBALS["USER"]->GetID();
                 $dbTask = CTasks::GetByID($arCrmActivity["ASSOCIATED_ENTITY_ID"], false);
                 if ($arTaskFields = $dbTask->Fetch()) {
                     if (!($userName = trim($GLOBALS["USER"]->GetFormattedName(false)))) {
                         $userName = $GLOBALS["USER"]->GetLogin();
                     }
                     $FORUM_ID = CTasksTools::GetForumIdForIntranet();
                     if (!$arTaskFields["FORUM_TOPIC_ID"]) {
                         $arTopicFields = array("TITLE" => $arTaskFields["TITLE"], "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" => 'TASK_' . $arTaskFields['ID']);
                         $TOPIC_ID = CForumTopic::Add($arTopicFields);
                         if ($TOPIC_ID) {
                             $arFieldsFirstMessage = array("POST_MESSAGE" => $arTopicFields["XML_ID"], "AUTHOR_ID" => $arTopicFields["USER_START_ID"], "AUTHOR_NAME" => $arTopicFields["USER_START_NAME"], "FORUM_ID" => $arTopicFields["FORUM_ID"], "TOPIC_ID" => $TOPIC_ID, "APPROVED" => "Y", "NEW_TOPIC" => "Y", "PARAM1" => 'TK', "PARAM2" => $arTaskFields['ID'], "PERMISSION_EXTERNAL" => 'E', "PERMISSION" => 'E');
                             CForumMessage::Add($arFieldsFirstMessage, false, array("SKIP_INDEXING" => "Y", "SKIP_STATISTIC" => "N"));
                             $oTask = new CTasks();
                             $oTask->Update($arTaskFields["ID"], array("FORUM_TOPIC_ID" => $TOPIC_ID));
                         }
                     } else {
                         $TOPIC_ID = $arTaskFields["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");
                         $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);
                         $messageID = CForumMessage::Add($arFieldsP);
                         // get UF DOC value and FILE_ID there
                         if ($messageID > 0) {
                             $dbAddedMessageFiles = CForumFiles::GetList(array("ID" => "ASC"), array("MESSAGE_ID" => $messageID));
                             while ($arAddedMessageFiles = $dbAddedMessageFiles->Fetch()) {
                                 $ufFileID[] = $arAddedMessageFiles["FILE_ID"];
                             }
                             $ufDocID = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFieldValue("FORUM_MESSAGE", "UF_FORUM_MESSAGE_DOC", $messageID, LANGUAGE_ID);
                         }
                     }
                 }
             } else {
                 return array("NO_SOURCE" => "Y");
             }
         } else {
             $sError = GetMessage("SONET_ADD_COMMENT_SOURCE_ERROR");
         }
     } else {
         $sError = GetMessage("SONET_ADD_COMMENT_SOURCE_ERROR");
     }
     return array("SOURCE_ID" => $messageID, "RATING_TYPE_ID" => "FORUM_POST", "RATING_ENTITY_ID" => $messageID, "ERROR" => $sError, "NOTES" => $sNote, "UF" => array("FILE" => $ufFileID, "DOC" => $ufDocID));
 }
Exemple #2
0
 /**
  * @deprecated
  */
 private static function getCommentsFiles($forumTopicId)
 {
     $arFilesIds = array();
     if (CModule::IncludeModule('forum') && ($forumId = CTasksTools::GetForumIdForIntranet()) && $forumId >= 1) {
         $rc = CForumMessage::GetListEx(array(), array('FORUM_ID' => $forumId, 'TOPIC_ID' => $forumTopicId));
         $arMessagesIds = array();
         while ($arMsg = $rc->fetch()) {
             $arMessagesIds[] = (int) $arMsg['ID'];
         }
         foreach ($arMessagesIds as $msgId) {
             $arUF = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFields("FORUM_MESSAGE", $msgId, LANGUAGE_ID, 1);
             if (isset($arUF['UF_FORUM_MESSAGE_DOC'], $arUF['UF_FORUM_MESSAGE_DOC']['VALUE'])) {
                 if (is_array($arUF['UF_FORUM_MESSAGE_DOC']['VALUE'])) {
                     $arFilesIds = array_merge($arFilesIds, $arUF['UF_FORUM_MESSAGE_DOC']['VALUE']);
                 }
             }
         }
     }
     $arFilesIds = array_unique(array_map('intval', $arFilesIds));
     return $arFilesIds;
     /*
     if (CModule::IncludeModuel("forum"))
     {
     	$arFilter = (is_array($arFilter) ? $arFilter : array($arFilter));
     	$arFilter[">UF_FORUM_MESSAGE_DOC"] = 0;
     	$db_res = CForumMessage::GetList(array("ID" => "ASC"), $arFilter, false, 0, array("SELECT" => array("UF_FORUM_MESSAGE_DOC")));
     	$arDocs = array();
     	if ($db_res && ($res = $db_res->Fetch()))
     	{
     		do {
     			if (!empty($res["UF_FORUM_MESSAGE_DOC"]) && is_array($res["UF_FORUM_MESSAGE_DOC"]))
     				$arDocs = array_merge($arDocs, $res["UF_FORUM_MESSAGE_DOC"]);
     		} while ($res = $db_res->Fetch());
     	}
     }
     */
 }
Exemple #3
0
    if ($arParams['SHOW_TEMPLATE'] === 'Y' && $arParams['RENDER_FORMAT'] === 'HTML') {
        ShowError(str_replace('#TASK_ID#', (int) $arParams['TASK_ID'], GetMessage('MB_TASKS_TASK_DETAIL_TASK_NOT_ACCESSIBLE')));
    }
    return false;
}
$arResult['FORUM_ID'] = false;
if ($arTask['FORUM_TOPIC_ID']) {
    $arTopic = CForumTopic::GetByID($arTask['FORUM_TOPIC_ID']);
    if ($arTopic) {
        $arResult['FORUM_ID'] = (int) $arTopic['FORUM_ID'];
    }
    unset($arTopic);
}
if ($arResult['FORUM_ID'] === false) {
    try {
        $arResult['FORUM_ID'] = CTasksTools::GetForumIdForIntranet();
    } catch (Exception $e) {
        // nothing to do here
    }
}
if ($arResult['FORUM_ID'] > 0) {
    __checkForum($arResult['FORUM_ID']);
}
$arTask['META::STATUS_FORMATTED_NAME'] = '';
switch ($arTask['REAL_STATUS']) {
    case CTasks::STATE_NEW:
        $arTask['META::STATUS_FORMATTED_NAME'] = GetMessage('MB_TASKS_TASK_DETAIL_STATUS_NEW');
        break;
    case CTasks::STATE_PENDING:
        $arTask['META::STATUS_FORMATTED_NAME'] = GetMessage('MB_TASKS_TASK_DETAIL_STATUS_ACCEPTED');
        break;