- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/internals/useroption.php
- Класс: BitrixTasksInternalsUserOption
- Вызов: UserOption::add
static function add(int $taskId, int $userId, int $option): Result
{
static::onBeforeOptionChanged($taskId, $userId, $option);
$addResult = new Result();
if ($taskId <= 0 || $userId <= 0 || !static::isOption($option))
{
$addResult->addError(0, 'Some parameter is wrong.');
return $addResult;
}
$data = [
'TASK_ID' => $taskId,
'USER_ID' => $userId,
'OPTION_CODE' => $option,
];
$item = UserOptionTable::getList([
'select' => ['ID'],
'filter' => $data,
])->fetch();
if (!$item)
{
$tableAddResult = UserOptionTable::add($data);
if (!$tableAddResult->isSuccess())
{
$addResult->addError(2, 'Adding to table failed.');
return $addResult;
}
static::onOptionChanged($taskId, $userId, $option, true);
return $addResult;
}
$addResult->addError(1, 'This option for task and user is already exist.');
return $addResult;
}