2 declare(strict_types = 1);
36 return 'fileReferenceUpdate';
44 return 'Migrate file references that are stored in a wrong way to correct scheme';
52 return 'File references were saved in a wrong way and references are not shown correctly in file list module.';
60 $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable(
'sys_refindex');
61 return (
bool)$queryBuilder->count(
'hash')
62 ->from(
'sys_refindex')
64 $queryBuilder->expr()->eq(
'ref_table', $queryBuilder->createNamedParameter(
'_FILE', \PDO::PARAM_STR)),
65 $queryBuilder->expr()->eq(
'softref_key', $queryBuilder->createNamedParameter(
'typolink_tag', \PDO::PARAM_STR)),
66 $queryBuilder->expr()->eq(
'deleted', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT))
78 DatabaseUpdatedPrerequisite::class
89 $connection = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable(
'sys_refindex');
90 $queryBuilder = $connection->createQueryBuilder();
91 $statement = $queryBuilder->select(
'*')
92 ->from(
'sys_refindex')
94 $queryBuilder->expr()->eq(
'ref_table', $queryBuilder->createNamedParameter(
'_FILE', \PDO::PARAM_STR)),
95 $queryBuilder->expr()->eq(
'softref_key', $queryBuilder->createNamedParameter(
'typolink_tag', \PDO::PARAM_STR)),
96 $queryBuilder->expr()->eq(
'deleted', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT))
99 while ($record = $statement->fetch()) {
102 $fileReference = $record[
'ref_string'];
106 if ($fileObject instanceof
File) {
107 $fileReference = $fileObject->
getUid();
114 $updateQueryBuilder = $connection->createQueryBuilder();
115 $updateQueryBuilder->update(
'sys_refindex')
117 $updateQueryBuilder->expr()->eq(
119 $updateQueryBuilder->createNamedParameter($record[
'hash'], \PDO::PARAM_STR)
123 if ($fileReference) {
124 $updateQueryBuilder->set(
'ref_table',
'sys_file')
125 ->set(
'ref_uid', $fileReference)
126 ->set(
'ref_string',
'');
128 $updateQueryBuilder->set(
'deleted', 1);
131 $updateQueryBuilder->execute();