From 55383762eed2852331260956c1a4b4e177afff7c Mon Sep 17 00:00:00 2001
From: Benni Mack <benni@typo3.org>
Date: Mon, 23 Mar 2020 16:37:31 +0100
Subject: [PATCH] [BUGFIX] Allow existing page module hooks to modify record
 argument

The existing drawItem_* hooks modified the record data to include custom
values to be used in previews.

The GridColumnItem now needs to allow to set the record data again.

Resolves: #90819
Releases: master
Change-Id: I008cdeb8b3411cda7fd7cfa184ca827a8d955581
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/63880
Tested-by: TYPO3com <noreply@typo3.com>
Tested-by: Georg Ringer <georg.ringer@gmail.com>
Tested-by: Susanne Moog <look@susi.dev>
Reviewed-by: Georg Ringer <georg.ringer@gmail.com>
Reviewed-by: Susanne Moog <look@susi.dev>
---
 .../Classes/Preview/StandardContentPreviewRenderer.php       | 2 ++
 .../Classes/View/BackendLayout/Grid/GridColumnItem.php       | 5 +++++
 2 files changed, 7 insertions(+)

diff --git a/typo3/sysext/backend/Classes/Preview/StandardContentPreviewRenderer.php b/typo3/sysext/backend/Classes/Preview/StandardContentPreviewRenderer.php
index 38b0e1d1235b..8793683c47ad 100644
--- a/typo3/sysext/backend/Classes/Preview/StandardContentPreviewRenderer.php
+++ b/typo3/sysext/backend/Classes/Preview/StandardContentPreviewRenderer.php
@@ -229,6 +229,7 @@ class StandardContentPreviewRenderer implements PreviewRendererInterface, Logger
                 }
                 $hookObject->preProcess($pageLayoutView, $info, $record);
             }
+            $item->setRecord($record);
         }
 
         if (!empty($info)) {
@@ -258,6 +259,7 @@ class StandardContentPreviewRenderer implements PreviewRendererInterface, Logger
                 }
                 $hookObject->preProcess($pageLayoutView, $drawItem, $previewHeader, $hookPreviewContent, $record);
             }
+            $item->setRecord($record);
         }
 
         $content = $previewHeader;
diff --git a/typo3/sysext/backend/Classes/View/BackendLayout/Grid/GridColumnItem.php b/typo3/sysext/backend/Classes/View/BackendLayout/Grid/GridColumnItem.php
index 39cdcd776816..2ec44627e1dd 100644
--- a/typo3/sysext/backend/Classes/View/BackendLayout/Grid/GridColumnItem.php
+++ b/typo3/sysext/backend/Classes/View/BackendLayout/Grid/GridColumnItem.php
@@ -183,6 +183,11 @@ class GridColumnItem extends AbstractGridObject
         return $this->record;
     }
 
+    public function setRecord(array $record): void
+    {
+        $this->record = $record;
+    }
+
     public function getColumn(): GridColumn
     {
         return $this->column;
-- 
GitLab