Skip to content

Commit a41bac7

Browse files
committed
[TASK] Update queries for LTS 12
1 parent c71730b commit a41bac7

File tree

3 files changed

+77
-30
lines changed

3 files changed

+77
-30
lines changed

Classes/Domain/Repository/FileRepository.php

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -189,10 +189,6 @@ public function getReferenceCount(File $file): int
189189
->count('uid')
190190
->from('sys_file_reference')
191191
->where(
192-
$queryBuilder2->expr()->eq(
193-
'table_local',
194-
$queryBuilder2->createNamedParameter('sys_file', Connection::PARAM_STR)
195-
),
196192
$queryBuilder2->expr()->eq(
197193
'uid_local',
198194
$queryBuilder2->createNamedParameter($file->getUid(), Connection::PARAM_INT)

Classes/FileFacade.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,6 @@ public function getLastReferenceTimestamp()
263263
->select('tstamp')
264264
->from('sys_file_reference')
265265
->where(
266-
$queryBuilder->expr()->eq('table_local', '\'sys_file\''),
267266
$queryBuilder->expr()->eq('uid_local', (int)$this->resource->getProperty('uid')),
268267
$queryBuilder->expr()->eq('deleted', 1)
269268
)

Classes/Service/FileCollectionService.php

Lines changed: 77 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use TYPO3\CMS\Core\Database\Connection;
66
use TYPO3\CMS\Core\Database\ConnectionPool;
7+
use TYPO3\CMS\Core\Information\Typo3Version;
78
use TYPO3\CMS\Core\Resource\Exception\ResourceDoesNotExistException;
89
use TYPO3\CMS\Core\Resource\File;
910
use TYPO3\CMS\Core\Resource\FileCollectionRepository;
@@ -66,6 +67,28 @@ private function getFileCollectionUidsByStorageAndFolder(
6667
int $storage,
6768
string $folder
6869
): array {
70+
71+
$typo3Version = (new Typo3Version)->getMajorVersion();
72+
73+
if ($typo3Version <= 12) {
74+
$queryResult = $this->getFilesLTS12($storage, $folder);
75+
} else {
76+
$queryResult = $this->getFilesLTS11($storage, $folder);
77+
}
78+
79+
$result = [];
80+
foreach ($queryResult as $record) {
81+
$result[] = $record['uid'];
82+
}
83+
84+
return $result;
85+
}
86+
87+
/**
88+
* @return array<int, int>
89+
*/
90+
private function getFileCollectionUidsForCategoryCollections(): array
91+
{
6992
$connection = GeneralUtility::makeInstance(ConnectionPool::class);
7093
$queryBuilder = $connection->getQueryBuilderForTable('sys_file_collection');
7194
$queryResult = $queryBuilder
@@ -74,22 +97,7 @@ private function getFileCollectionUidsByStorageAndFolder(
7497
->where(
7598
$queryBuilder->expr()->eq(
7699
'type',
77-
$queryBuilder->createNamedParameter('folder', Connection::PARAM_STR)
78-
),
79-
$queryBuilder->expr()->eq(
80-
'storage',
81-
$queryBuilder->createNamedParameter($storage, Connection::PARAM_INT)
82-
),
83-
$queryBuilder->expr()->neq(
84-
'folder',
85-
$queryBuilder->createNamedParameter('', Connection::PARAM_STR)
86-
),
87-
$queryBuilder->expr()->like(
88-
'folder',
89-
$queryBuilder->createNamedParameter(
90-
$queryBuilder->escapeLikeWildcards($folder) . '%',
91-
Connection::PARAM_STR
92-
)
100+
$queryBuilder->createNamedParameter('category', Connection::PARAM_STR)
93101
)
94102
)
95103
->execute()
@@ -104,9 +112,9 @@ private function getFileCollectionUidsByStorageAndFolder(
104112
}
105113

106114
/**
107-
* @return array<int, int>
115+
* @return array<mixed, mixed>
108116
*/
109-
private function getFileCollectionUidsForCategoryCollections(): array
117+
private function getFilesLTS12($storage, $folder): array
110118
{
111119
$connection = GeneralUtility::makeInstance(ConnectionPool::class);
112120
$queryBuilder = $connection->getQueryBuilderForTable('sys_file_collection');
@@ -116,17 +124,61 @@ private function getFileCollectionUidsForCategoryCollections(): array
116124
->where(
117125
$queryBuilder->expr()->eq(
118126
'type',
119-
$queryBuilder->createNamedParameter('category', Connection::PARAM_STR)
127+
$queryBuilder->createNamedParameter('folder', \Doctrine\DBAL\ParameterType::STRING)
128+
),
129+
$queryBuilder->expr()->neq(
130+
'folder_identifier',
131+
$queryBuilder->createNamedParameter($storage . ':' . $folder, \Doctrine\DBAL\ParameterType::STRING)
132+
),
133+
$queryBuilder->expr()->like(
134+
'folder_identifier',
135+
$queryBuilder->createNamedParameter(
136+
$queryBuilder->escapeLikeWildcards($folder) . '%',
137+
\Doctrine\DBAL\ParameterType::STRING
138+
)
120139
)
121140
)
122141
->execute()
123142
->fetchAll();
143+
return $queryResult;
124144

125-
$result = [];
126-
foreach ($queryResult as $record) {
127-
$result[] = $record['uid'];
128-
}
129-
130-
return $result;
145+
}
146+
/**
147+
* @return array<mixed, mixed>
148+
*/
149+
private function getFilesLTS11($storage, $folder): array
150+
{
151+
$connection = GeneralUtility::makeInstance(ConnectionPool::class);
152+
$queryBuilder = $connection->getQueryBuilderForTable('sys_file_collection');
153+
$connection = GeneralUtility::makeInstance(ConnectionPool::class);
154+
$queryBuilder = $connection->getQueryBuilderForTable('sys_file_collection');
155+
$queryResult = $queryBuilder
156+
->select('uid')
157+
->from('sys_file_collection')
158+
->where(
159+
$queryBuilder->expr()->eq(
160+
'type',
161+
$queryBuilder->createNamedParameter('folder', Connection::PARAM_STR)
162+
),
163+
$queryBuilder->expr()->eq(
164+
'storage',
165+
$queryBuilder->createNamedParameter($storage, Connection::PARAM_INT)
166+
),
167+
$queryBuilder->expr()->neq(
168+
'folder',
169+
$queryBuilder->createNamedParameter('', Connection::PARAM_STR)
170+
),
171+
$queryBuilder->expr()->like(
172+
'folder',
173+
$queryBuilder->createNamedParameter(
174+
$queryBuilder->escapeLikeWildcards($folder) . '%',
175+
Connection::PARAM_STR
176+
)
177+
)
178+
)
179+
->execute()
180+
->fetchAll();
181+
return $queryResult;
131182
}
132183
}
184+

0 commit comments

Comments
 (0)