diff --git a/packages/ep_theme/Classes/Command/MigrateGridelementsCommand.php b/packages/ep_theme/Classes/Command/MigrateGridelementsCommand.php
index ee7d9b4..4781b46 100644
--- a/packages/ep_theme/Classes/Command/MigrateGridelementsCommand.php
+++ b/packages/ep_theme/Classes/Command/MigrateGridelementsCommand.php
@@ -161,7 +161,10 @@ class MigrateGridelementsCommand extends Command
$output->writeln(sprintf('%6d other rows with grid values, cleared', $leftovers));
}
if ($input->getOption('report')) {
- $this->writeReport((string)$input->getOption('report'), $report);
+ if (!$this->writeReport((string)$input->getOption('report'), $report)) {
+ $output->writeln(sprintf('Cannot write the report to %s, nothing migrated.', $input->getOption('report')));
+ return Command::FAILURE;
+ }
$output->writeln(sprintf('Report: %d rows in %s', count($report), $input->getOption('report')));
}
if ($updates === [] && $leftovers === 0) {
@@ -194,19 +197,22 @@ class MigrateGridelementsCommand extends Command
/**
* @param list, 1: string, 2: string, 3: string}> $rows
*/
- private function writeReport(string $file, array $rows): void
+ private function writeReport(string $file, array $rows): bool
{
+ $handle = @fopen($file, 'wb');
+ if ($handle === false) {
+ return false;
+ }
$titles = [];
- foreach ($this->connectionPool->getConnectionForTable('pages')->select(['uid', 'title'], 'pages', ['sys_language_uid' => 0])->iterateAssociative() as $page) {
+ foreach ($this->connectionPool->getConnectionForTable('pages')->executeQuery('SELECT uid, title FROM pages WHERE sys_language_uid = 0')->iterateAssociative() as $page) {
$titles[(int)$page['uid']] = $page['title'];
}
- $handle = fopen($file, 'wb');
fputcsv($handle, ['uid', 'pid', 'page', 'CType', 'header', 'hidden', 'group', 'reason', 'action'], escape: '');
foreach ($rows as [$row, $group, $reason, $action]) {
fputcsv($handle, [
$row['uid'], $row['pid'], $titles[(int)$row['pid']] ?? '', $row['CType'], $row['header'], $row['hidden'], $group, $reason, $action,
], escape: '');
}
- fclose($handle);
+ return fclose($handle);
}
}