From 378647ecac33b591f4a4b4a3bd12ec2a647b8f14 Mon Sep 17 00:00:00 2001 From: Nicole Cordes <typo3@cordes.co> Date: Mon, 12 Dec 2016 17:53:10 +0100 Subject: [PATCH] [BUGFIX] TCA: Make ###CURRENT_PID### work in foreign_table_where in IRRE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The patch adds the current database row to the data passed to the select field rendered by foreign_selector of IRRE. This data is necessary to properly resolve the ###CURRENT_PID### marker in a foreign_table_where clause. Resolves: #78960 Releases: master, 7.6 Change-Id: I17f6b4a78d20c101ef7caab227d23c87f138e8ce Reviewed-on: https://review.typo3.org/50934 Reviewed-by: Markus Klein <markus.klein@typo3.org> Tested-by: Markus Klein <markus.klein@typo3.org> Tested-by: TYPO3com <no-reply@typo3.com> Tested-by: Jasmina Ließmann <code@frauliessmann.de> Reviewed-by: Nicole Cordes <typo3@cordes.co> Tested-by: Nicole Cordes <typo3@cordes.co> --- .../Form/FormDataProvider/AbstractItemProvider.php | 13 ++++++++----- .../Classes/Form/FormDataProvider/TcaInline.php | 1 + 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/typo3/sysext/backend/Classes/Form/FormDataProvider/AbstractItemProvider.php b/typo3/sysext/backend/Classes/Form/FormDataProvider/AbstractItemProvider.php index 302429cffd06..0d81e9bce390 100644 --- a/typo3/sysext/backend/Classes/Form/FormDataProvider/AbstractItemProvider.php +++ b/typo3/sysext/backend/Classes/Form/FormDataProvider/AbstractItemProvider.php @@ -1048,11 +1048,14 @@ abstract class AbstractItemProvider } $foreignTableClause = implode('', $whereClauseParts); } - // Use pid from parent page clause if in flex flom context - if (strpos($foreignTableClause, '###CURRENT_PID###') !== false - && !empty($result['flexParentDatabaseRow']['pid']) - ) { - $effectivePid = $result['flexParentDatabaseRow']['pid']; + if (strpos($foreignTableClause, '###CURRENT_PID###') !== false) { + // Use pid from parent page clause if in flex form context + if (!empty($result['flexParentDatabaseRow']['pid'])) { + $effectivePid = $result['flexParentDatabaseRow']['pid']; + // Use pid from database row if in inline context + } elseif (!$effectivePid && !empty($result['databaseRow']['pid'])) { + $effectivePid = $result['databaseRow']['pid']; + } } $siteRootUid = 0; diff --git a/typo3/sysext/backend/Classes/Form/FormDataProvider/TcaInline.php b/typo3/sysext/backend/Classes/Form/FormDataProvider/TcaInline.php index 34d6c98b1aa9..840393ac4ec0 100644 --- a/typo3/sysext/backend/Classes/Form/FormDataProvider/TcaInline.php +++ b/typo3/sysext/backend/Classes/Form/FormDataProvider/TcaInline.php @@ -255,6 +255,7 @@ class TcaInline extends AbstractDatabaseRecordProvider implements FormDataProvid // do extra handling of pageTsConfig merged here. Just provide "parent" pageTS as is 'pageTsConfig' => $result['pageTsConfig'], 'userTsConfig' => $result['userTsConfig'], + 'databaseRow' => $result['databaseRow'], 'processedTca' => [ 'ctrl' => [], 'columns' => [ -- GitLab