Bitrix24.Tasks: \CTaskCommentItem API description

Класс работы с комментариями в модуле задач

Создание комментария

\CTaskCommentItem::add(\CTaskItem $task, array $fields);

Первым параметром передается объект задачи, вторым поля комментария.

Поля могут быть следующие:

AUTHOR_ID - ID пользователя, от имени которого создается комментарий
AUTHOR_NAME (optional)
AUTHOR_EMAIL(optional)
USE_SMILES - (Y|N) - парсить или нет комментарии на наличие смайлов
POST_MESSAGE - текст сообщения

FILES - массив файлов
AUX (Y|N) - обновить модуль статистики и отправить сообщение о новом сообщении получателям

Пример использования:

$task = \CTaskItem::getInstance($this->entityId, $authorId);
\CTaskCommentItem::add($task, $fields);

Пример использования в REST

http://site.bx/rest/1/SECRETKEY/tasks.task.comments.add?taskId=1&fields[POST_MESSAGE]=hello%20world!

Можно подписаться на событие создания комментария:

RegisterModuleDependences('forum', 'OnCommentTopicAdd', 'tasks', 'YourClass', 'onBeforeAdd');RegisterModuleDependences('forum', 'OnAfterCommentTopicAdd', 'tasks', 'YourClass', 'onAfterAdd');

Изменение комментария

$comment = \CTaskCommentItem(\CTaskItem $task, $commentId);
$comment->update($fields);

Поля такие же как в методе создания комментариев

\CTaskCommentItem::add(\CTaskItem $task, array $fields);

Пример использования в REST

http://site.bx/rest/1/SECRETKEY/tasks.task.comments.update?taskId=1&commentId=1&fields[POST_MESSAGE]=hello%20world%202!

Можно подписаться на событие изменения комментария:

RegisterModuleDependences('forum', 'OnCommentUpdate', 'tasks', 'YourClass', 'OnCommentUpdate');RegisterModuleDependences('forum', 'OnAfterCommentUpdate', 'tasks', 'YourClass', 'OnAfterCommentUpdate');

Удаление комментария

$comment = \CTaskCommentItem(\CTaskItem $task, $commentId);
$comment->delete($fields);

Пример использования в REST

http://site.bx/rest/1/SECRETKEY/tasks.task.comments.delete?taskId=1&commentId=1

Можно подписаться на событие изменения комментария:

RegisterModuleDependences('forum', 'OnCommentDelete', 'tasks', 'YourClass', 'OnCommentDelete');RegisterModuleDependences('forum', 'OnAfterCommentDelete', 'tasks', 'YourClass', 'OnAfterCommentDelete');

Работа с ошибками

Если что-то пошло не по плану, всегда можно отловить исключение

\TasksException

Пример работы:

$task = \CTaskItem::getInstance($this->entityId, $authorId);
try
{
\CTaskCommentItem::add($task, $fields);
}
catch(\TasksException $e)
{
// log it
}

Проверка доступа к действию с комментарием

$comment = \CTaskCommentItem(\CTaskItem $task, $commentId);
if($comment->isActionAllowed(\CTaskCommentItem::ACTION_COMMENT_ADD))
{
// add comment access granted
}

На проверке имеется три доступа

\CTaskCommentItem::ACTION_COMMENT_ADD;
\CTaskCommentItem::ACTION_COMMENT_MODIFY;
\CTaskCommentItem::ACTION_COMMENT_REMOVE;

--

--