• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/internals/recentlyused.php
  • Класс: BitrixDiskInternalsRecentlyUsedTable
  • Вызов: RecentlyUsedTable::deleteOldObjects
static function deleteOldObjects($userId)
{
	$offset = self::MAX_COUNT_FOR_USER - 1;
	$connection = Application::getConnection();
	if($connection instanceof MysqlCommonConnection)
	{
		$connection->queryExecute("
			DELETE t
			FROM
			    b_disk_recently_used AS t
		    JOIN
			( SELECT ID
			  FROM b_disk_recently_used
			  WHERE USER_ID = {$userId}
			  ORDER BY ID DESC
			  LIMIT 1 OFFSET {$offset}
			) tlimit ON t.ID < tlimit.ID AND t.USER_ID = {$userId}
		");
	}
	else
	{
		$id = static::getList(array(
			'select' => array('ID'),
			'filter' => array(
				'USER_ID' => $userId,
			),
			'order' => array('ID' => 'DESC'),
			'limit' => 1,
			'offset' => $offset,
		))->fetch();
		$id = !empty($id['ID'])? (int)$id['ID'] : null;
		if($id)
		{
			$connection->queryExecute("
				DELETE FROM b_disk_recently_used WHERE ID < {$id} AND USER_ID = {$userId}
			");
		}
	}
}