Возникла задача — необходимо добавить комментарий из письма комментарием к задаче, то есть владелец задачи может оставить комментарий к своей задачи на прямую из почты.
Расписывать каким образом читать почту я не буду, просто приведу листинг того как добавить комментарий и как хотелось бы на D7 , но пока нельзя.
$task = \Bitrix\Tasks\Internals\TaskTable::getByPrimary($res['TASK_ID'])->fetch(); $forumID = \CForumTopic::GetByID($task['FORUM_TOPIC_ID']); $comment = ''; $postFields = array( 'TOPIC_ID' => $task['FORUM_TOPIC_ID'], // идентификатор topic'a 'FORUM_ID' => $forumID['FORUM_ID'], // id форума, приходится делать отдельным запросом 'SOURCE_ID' => 'WEB', 'USE_SMILES' => 'Y', 'NEW_TOPIC' => 'Y', 'POST_MESSAGE' => $comment, 'POST_MESSAGE_HTML' => $comment, 'AUTHOR_ID' => $user['ID'], 'AUTHOR_NAME' => $user['NAME'].' '.$user['LAST_NAME'], // без этого поля тоже не добавит 'XML_ID' => 'TASK_'.$task['ID'], // важно соблюдать данный формат ); $result = \CForumMessage::Add($postFields); if (!$result) { GLOBAL $APPLICATION; $ex = $APPLICATION->GetException(); echo $ex->GetString(); }
А вот как хотелось бы на D7, но висит Exception в классе Сообщений (спасибо битрикс)
$result = \Bitrix\Forum\MessageTable::add(array( 'TOPIC_ID' => $task['FORUM_TOPIC_ID'], 'FORUM_ID' => $forumID['FORUM_ID'], 'SOURCE_ID' => 'WEB', 'USE_SMILES' => 'Y', 'NEW_TOPIC' => 'Y', 'POST_MESSAGE' => $comment, 'POST_MESSAGE_HTML' => $comment, 'AUTHOR_ID' => $user['ID'], 'XML_ID' => 'TASK_'.$task['ID'] )); print_r($result->getErrorMessages());