Skip to content

Commit ed677f9

Browse files
committed
[TASK] PageContentPreviewRenderingEvent changed in v14
property record changed from array to RecordInterface s. https://review.typo3.org/c/Packages/TYPO3.CMS/+/88519
1 parent 2f91030 commit ed677f9

File tree

7 files changed

+100
-8
lines changed

7 files changed

+100
-8
lines changed

Build/phpstan-baseline-11-7.4.neon

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,22 @@ parameters:
5858
-
5959
message: "#^Call to an undefined static method TYPO3\\\\CMS\\\\Core\\\\Versioning\\\\VersionState\\:\\:tryFrom\\(\\)\\.$#"
6060
count: 2
61-
path: ../Classes/Domain/Factory/PageView/Backend/ContentStorage.php
61+
path: ../Classes/Domain/Factory/PageView/Backend/ContentStorage.php
62+
-
63+
message: "#^Cannot call method getRecordType\\(\\) on array\\.$#"
64+
count: 1
65+
path: ../Classes/Listener/PageContentPreviewRendering.php
66+
67+
-
68+
message: "#^Cannot call method toArray\\(\\) on array\\.$#"
69+
count: 1
70+
path: ../Classes/Listener/PageContentPreviewRendering.php
71+
-
72+
message: "#^Call to method createFromDatabaseRow\\(\\) on an unknown class TYPO3\\\\CMS\\\\Core\\\\Domain\\\\RecordFactory\\.$#"
73+
count: 1
74+
path: ../Classes/Backend/Grid/ContainerGridColumnItem.php
75+
76+
-
77+
message: "#^Class TYPO3\\\\CMS\\\\Core\\\\Domain\\\\RecordFactory not found\\.$#"
78+
count: 1
79+
path: ../Classes/Backend/Grid/ContainerGridColumnItem.php

Build/phpstan-baseline-11.neon

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,4 +68,22 @@ parameters:
6868
-
6969
message: "#^Call to an undefined static method TYPO3\\\\CMS\\\\Core\\\\Versioning\\\\VersionState\\:\\:tryFrom\\(\\)\\.$#"
7070
count: 2
71-
path: ../Classes/Domain/Factory/PageView/Backend/ContentStorage.php
71+
path: ../Classes/Domain/Factory/PageView/Backend/ContentStorage.php
72+
-
73+
message: "#^Cannot call method getRecordType\\(\\) on array\\.$#"
74+
count: 1
75+
path: ../Classes/Listener/PageContentPreviewRendering.php
76+
77+
-
78+
message: "#^Cannot call method toArray\\(\\) on array\\.$#"
79+
count: 1
80+
path: ../Classes/Listener/PageContentPreviewRendering.php
81+
-
82+
message: "#^Call to method createFromDatabaseRow\\(\\) on an unknown class TYPO3\\\\CMS\\\\Core\\\\Domain\\\\RecordFactory\\.$#"
83+
count: 1
84+
path: ../Classes/Backend/Grid/ContainerGridColumnItem.php
85+
86+
-
87+
message: "#^Class TYPO3\\\\CMS\\\\Core\\\\Domain\\\\RecordFactory not found\\.$#"
88+
count: 1
89+
path: ../Classes/Backend/Grid/ContainerGridColumnItem.php

Build/phpstan-baseline-12.neon

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,4 +63,22 @@ parameters:
6363
-
6464
message: "#^Call to an undefined static method TYPO3\\\\CMS\\\\Core\\\\Versioning\\\\VersionState\\:\\:tryFrom\\(\\)\\.$#"
6565
count: 2
66-
path: ../Classes/Domain/Factory/PageView/Backend/ContentStorage.php
66+
path: ../Classes/Domain/Factory/PageView/Backend/ContentStorage.php
67+
-
68+
message: "#^Cannot call method getRecordType\\(\\) on array\\.$#"
69+
count: 1
70+
path: ../Classes/Listener/PageContentPreviewRendering.php
71+
72+
-
73+
message: "#^Cannot call method toArray\\(\\) on array\\.$#"
74+
count: 1
75+
path: ../Classes/Listener/PageContentPreviewRendering.php
76+
-
77+
message: "#^Call to method createFromDatabaseRow\\(\\) on an unknown class TYPO3\\\\CMS\\\\Core\\\\Domain\\\\RecordFactory\\.$#"
78+
count: 1
79+
path: ../Classes/Backend/Grid/ContainerGridColumnItem.php
80+
81+
-
82+
message: "#^Class TYPO3\\\\CMS\\\\Core\\\\Domain\\\\RecordFactory not found\\.$#"
83+
count: 1
84+
path: ../Classes/Backend/Grid/ContainerGridColumnItem.php

Build/phpstan-baseline-13.neon

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,13 @@ parameters:
3939
-
4040
message: "#^Class TYPO3\\\\CMS\\\\Backend\\\\View\\\\PageLayoutContext constructor invoked with 2 parameters, 5 required\\.$#"
4141
count: 1
42-
path: ../Tests/Functional/Integrity/IntegrityTest.php
42+
path: ../Tests/Functional/Integrity/IntegrityTest.php
43+
-
44+
message: "#^Cannot call method getRecordType\\(\\) on array\\.$#"
45+
count: 1
46+
path: ../Classes/Listener/PageContentPreviewRendering.php
47+
48+
-
49+
message: "#^Cannot call method toArray\\(\\) on array\\.$#"
50+
count: 1
51+
path: ../Classes/Listener/PageContentPreviewRendering.php

Build/phpstan-baseline-14.neon

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,4 +78,13 @@ parameters:
7878
-
7979
message: "#^Call to an undefined static method TYPO3\\\\CMS\\\\Core\\\\Versioning\\\\VersionState\\:\\:cast\\(\\)\\.$#"
8080
count: 2
81-
path: ../Classes/Domain/Factory/PageView/Backend/ContentStorage.php
81+
path: ../Classes/Domain/Factory/PageView/Backend/ContentStorage.php
82+
-
83+
message: "#^Parameter \\#1 \\$record of method B13\\\\Container\\\\Backend\\\\Preview\\\\GridRenderer\\:\\:renderGrid\\(\\) expects array, TYPO3\\\\CMS\\\\Core\\\\Domain\\\\RecordInterface given\\.$#"
84+
count: 1
85+
path: ../Classes/Backend/Preview/ContainerPreviewRenderer.php
86+
87+
-
88+
message: "#^Parameter \\#1 \\$record of method B13\\\\Container\\\\Backend\\\\Preview\\\\GridRenderer\\:\\:renderGrid\\(\\) expects array, TYPO3\\\\CMS\\\\Core\\\\Domain\\\\RecordInterface given\\.$#"
89+
count: 1
90+
path: ../Classes/Listener/PageContentPreviewRendering.php

Classes/Backend/Grid/ContainerGridColumnItem.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@
1515
use B13\Container\Domain\Model\Container;
1616
use TYPO3\CMS\Backend\View\BackendLayout\Grid\GridColumnItem;
1717
use TYPO3\CMS\Backend\View\PageLayoutContext;
18+
use TYPO3\CMS\Core\Domain\RecordFactory;
19+
use TYPO3\CMS\Core\Information\Typo3Version;
20+
use TYPO3\CMS\Core\Utility\GeneralUtility;
1821

1922
class ContainerGridColumnItem extends GridColumnItem
2023
{
@@ -23,6 +26,10 @@ class ContainerGridColumnItem extends GridColumnItem
2326

2427
public function __construct(PageLayoutContext $context, ContainerGridColumn $column, array $record, Container $container, ?string $newContentUrl)
2528
{
29+
if ((GeneralUtility::makeInstance(Typo3Version::class))->getMajorVersion() > 13) {
30+
$recordFactory = GeneralUtility::makeInstance(RecordFactory::class);
31+
$record = $recordFactory->createFromDatabaseRow('tt_content', $record);
32+
}
2633
parent::__construct($context, $column, $record);
2734
$this->container = $container;
2835
$this->newContentUrl = $newContentUrl;

Classes/Listener/PageContentPreviewRendering.php

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
use B13\Container\Backend\Preview\GridRenderer;
1616
use B13\Container\Tca\Registry;
1717
use TYPO3\CMS\Backend\View\Event\PageContentPreviewRenderingEvent;
18+
use TYPO3\CMS\Core\Information\Typo3Version;
19+
use TYPO3\CMS\Core\Utility\GeneralUtility;
1820

1921
class PageContentPreviewRendering
2022
{
@@ -34,10 +36,21 @@ public function __invoke(PageContentPreviewRenderingEvent $event): void
3436
}
3537

3638
$record = $event->getRecord();
37-
if (!$this->tcaRegistry->isContainerElement((string)$record['CType'])) {
39+
40+
if ((GeneralUtility::makeInstance(Typo3Version::class))->getMajorVersion() > 13) {
41+
$recordType = $record->getRecordType();
42+
} else {
43+
$recordType = $record['CType'];
44+
}
45+
if (!$this->tcaRegistry->isContainerElement($recordType)) {
3846
return;
3947
}
40-
$record['tx_container_grid'] = $this->gridRenderer->renderGrid($record, $event->getPageLayoutContext());
41-
$event->setRecord($record);
48+
if ((GeneralUtility::makeInstance(Typo3Version::class))->getMajorVersion() > 13) {
49+
$previewContent = $this->gridRenderer->renderGrid($record->toArray(), $event->getPageLayoutContext());
50+
$event->setPreviewContent($previewContent);
51+
} else {
52+
$record['tx_container_grid'] = $this->gridRenderer->renderGrid($record, $event->getPageLayoutContext());
53+
$event->setRecord($record);
54+
}
4255
}
4356
}

0 commit comments

Comments
 (0)