Bitrix24.Tasks: \CTaskCommentItem API description
2 min readFeb 4, 2019
Класс работы с комментариями в модуле задач
Создание комментария
\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;