- Модуль: 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;
}