• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/recentlyusedmanager.php
  • Класс: BitrixDiskRecentlyUsedManager
  • Вызов: RecentlyUsedManager::fixColdStart
private function fixColdStart($user)
{
	$userId = User::resolveUserId($user);
	if(!$userId)
	{
		$this->errorCollection->addOne(new Error('Could not get user id.'));
		return false;
	}
	$storage = Driver::getInstance()->getStorageByUserId($userId);
	if(!$storage)
	{
		$this->errorCollection->addOne(new Error('Could not get storage by user id.'));
		return false;
	}

	$fromDate = DateTime::createFromTimestamp(time() - 14*24*3600);

	$objects = array();
	$query = FileTable::getList(array(
		'select' => array('ID', 'UPDATE_TIME'),
		'filter' => array(
			'STORAGE_ID' => $storage->getId(),
			'TYPE' => ObjectTable::TYPE_FILE,
			'DELETED_TYPE' => ObjectTable::DELETED_TYPE_NONE,
			'>UPDATE_TIME' => $fromDate,
			array(
				'LOGIC' => 'OR',
				array(
					'CREATED_BY' => $userId,
				),
				array(
					'UPDATED_BY' => $userId,
				),
			),
		),
		'order' => array('UPDATE_TIME' => 'DESC'),
		'limit' => RecentlyUsedTable::MAX_COUNT_FOR_USER,
	));
	while($row = $query->fetch())
	{
		$objects[] = array(
			'USER_ID' => $userId,
			'OBJECT_ID' => $row['ID'],
			'CREATE_TIME' => $row['UPDATE_TIME'],
		);
	}
	unset($row, $query, $fromDate);

	Collection::sortByColumn($objects, array('CREATE_TIME' => SORT_ASC));
	RecentlyUsedTable::insertBatch($objects);

	return true;
}