From 2618039a5edcdbc37ccd10e5e62c1cc84caca01d Mon Sep 17 00:00:00 2001
From: Daniel Siepmann <daniel.siepmann@typo3.org>
Date: Mon, 24 Feb 2020 10:05:38 +0100
Subject: [PATCH] [BUGFIX] Cast to prevent PHP TypeError when using sqlite
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

sqlite3 doesn't return casted values right now, everything is a string.
Some methods require integers, e.g. uid of a record. In order to prevent
TypeError due to mismatch, values are casted to integer.

Resolves: #90515
Releases: master
Change-Id: Ibb1654a412f94b5bd511dac5bed75a1af0683fe9
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/63399
Reviewed-by: Björn Jacob <bjoern.jacob@tritum.de>
Reviewed-by: Markus Klein <markus.klein@typo3.org>
Reviewed-by: Christian Eßl <indy.essl@gmail.com>
Reviewed-by: Claus Due <claus@phpmind.net>
Reviewed-by: Georg Ringer <georg.ringer@gmail.com>
Tested-by: Markus Klein <markus.klein@typo3.org>
Tested-by: Christian Eßl <indy.essl@gmail.com>
Tested-by: TYPO3com <noreply@typo3.com>
Tested-by: Claus Due <claus@phpmind.net>
Tested-by: Georg Ringer <georg.ringer@gmail.com>
---
 .../backend/Classes/View/BackendLayout/ContentFetcher.php     | 2 +-
 .../Classes/View/BackendLayout/Grid/GridColumnItem.php        | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/typo3/sysext/backend/Classes/View/BackendLayout/ContentFetcher.php b/typo3/sysext/backend/Classes/View/BackendLayout/ContentFetcher.php
index de78b4795f22..f6c4d236e189 100644
--- a/typo3/sysext/backend/Classes/View/BackendLayout/ContentFetcher.php
+++ b/typo3/sysext/backend/Classes/View/BackendLayout/ContentFetcher.php
@@ -111,7 +111,7 @@ class ContentFetcher
         $rememberer = $this->backendLayout->getRecordRememberer();
         foreach ($this->fetchedContentRecords[$this->backendLayout->getDrawingConfiguration()->getLanguageColumnsPointer()] ?? [] as $contentRecordsInColumn) {
             foreach ($contentRecordsInColumn as $contentRecord) {
-                if (!$rememberer->isRemembered($contentRecord['uid']) && !in_array($contentRecord['colPos'], $knownColumnPositionNumbers)) {
+                if (!$rememberer->isRemembered((int)$contentRecord['uid']) && !in_array($contentRecord['colPos'], $knownColumnPositionNumbers)) {
                     $unrendered[] = $contentRecord;
                 }
             }
diff --git a/typo3/sysext/backend/Classes/View/BackendLayout/Grid/GridColumnItem.php b/typo3/sysext/backend/Classes/View/BackendLayout/Grid/GridColumnItem.php
index 024ee7780a11..2358f21441ef 100644
--- a/typo3/sysext/backend/Classes/View/BackendLayout/Grid/GridColumnItem.php
+++ b/typo3/sysext/backend/Classes/View/BackendLayout/Grid/GridColumnItem.php
@@ -49,8 +49,8 @@ class GridColumnItem extends AbstractGridObject
         parent::__construct($backendLayout);
         $this->column = $column;
         $this->record = $record;
-        $backendLayout->getRecordRememberer()->rememberRecordUid($record['uid']);
-        $backendLayout->getRecordRememberer()->rememberRecordUid($record['l18n_parent']);
+        $backendLayout->getRecordRememberer()->rememberRecordUid((int)$record['uid']);
+        $backendLayout->getRecordRememberer()->rememberRecordUid((int)$record['l18n_parent']);
     }
 
     public function isVersioned(): bool
-- 
GitLab