• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/internals/task/sorting.php
  • Класс: BitrixTasksInternalsTaskSortingTable
  • Вызов: SortingTable::getSortedItems
static function getSortedItems(CDBResult $result, $userId, $groupId, $prevTaskSort, $prevTaskId, $sourceId, $targetId)
{
	$items = array();
	$itemIndex = -1;
	$prevTaskIndex = null;
	$targetFound = false;
	while ($row = $result->fetch())
	{
		if ($sourceId == $row["ID"])
		{
			//Skip source task
			continue;
		}

		if ($prevTaskIndex !== null)
		{
			$items[$prevTaskIndex]["NEXT_TASK_ID"] = $row["ID"];
		}

		$prevTaskSort += static::SORT_INDEX_INCREMENT;
		$fields = array(
			"TASK_ID" => $row["ID"],
			"SORT" => $prevTaskSort,
			"PREV_TASK_ID" => $prevTaskId,
			"NEXT_TASK_ID" => 0
		);

		if ($groupId)
		{
			$fields["GROUP_ID"] = $groupId;
		}
		else
		{
			$fields["USER_ID"] = $userId;
		}

		$items[++$itemIndex] = $fields;

		$prevTaskIndex = $itemIndex;
		$prevTaskId = $row["ID"];

		if ($targetId == $row["ID"])
		{
			$targetFound = true;
			break;
		}
	}

	return array($items, $targetFound);
}