- Модуль: clouds
- Путь к файлу: ~/bitrix/modules/clouds/lib/filehash.php
- Класс: BitrixCloudsFileHashTable
- Вызов: FileHashTable::dirList
static function dirList($bucketId, $path, $order, $filter)
{
$connection = BitrixMainApplication::getConnection();
$sqlHelper = $connection->getSqlHelper();
$query = BitrixCloudsFileHashTable::query();
$query->setSelect([
new ExpressionField(
'FILE_TYPE',
'if(locate('/', substring(%s, length('' . $sqlHelper->forSql($path) . '')+1)) > 0, 'D', 'F')',
['FILE_PATH']
),
new ExpressionField(
'NAME',
'substring_index(substring(%s, length('' . $sqlHelper->forSql($path) . '')+1), '/', 1)',
['FILE_PATH']
),
new ExpressionField(
'SUM_FILE_SIZE',
'SUM(%s)',
['FILE_SIZE']
),
new ExpressionField(
'MAX_FILE_MTIME',
'MAX(%s)',
['FILE_MTIME']
),
new ExpressionField(
'FILE_COUNT',
'COUNT(1)'
),
]);
$filter['=BUCKET_ID'] = $bucketId;
$filter['%=FILE_PATH'] = $path . '%';
$query->setFilter($filter);
$query->setGroup(['FILE_TYPE', 'NAME']);
$query->setOrder($order);
$sql = $query->getQuery();
return $connection->query($sql);
}