- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/checklist/internals/checklist.php
- Класс: BitrixTasksCheckListInternalsCheckList
- Вызов: CheckList::getChangedFields
private function getChangedFields($oldFields)
{
$changedTableFields = [];
$changedCommonFields = [];
$newFields = $this->getFields();
$possibleChanges = ['TITLE', 'PARENT_ID', 'SORT_INDEX', 'IS_COMPLETE', 'IS_IMPORTANT', 'MEMBERS', 'ATTACHMENTS'];
foreach ($possibleChanges as $field)
{
switch ($field)
{
case 'PARENT_ID':
if ($oldFields[$field] !== $newFields[$field])
{
$changedCommonFields[$field] = $newFields[$field];
}
break;
case 'MEMBERS':
if ($changedMembers = $this->getChangedMembers($oldFields[$field], $newFields[$field]))
{
$changedCommonFields[$field] = $changedMembers;
}
break;
case 'ATTACHMENTS':
if (($changedAttachments = $this->getChangedAttachments($oldFields[$field], $newFields[$field])) !== null)
{
$changedCommonFields[$field] = $changedAttachments;
}
break;
default:
if ($oldFields[$field] !== $newFields[$field])
{
$changedTableFields[$field] = $newFields[$field];
if ($field === 'IS_COMPLETE')
{
$userTime = User::getTime($this->userId);
$changedTableFields['TOGGLED_BY'] = $this->userId;
$changedTableFields['TOGGLED_DATE'] = new DateTime(UI::formatDateTime($userTime));
}
}
break;
}
}
return [
'TABLE' => $changedTableFields,
'COMMON' => $changedCommonFields,
];
}