From 7a7cf8cec0a43dbc49821de69b3c5041ead7b097 Mon Sep 17 00:00:00 2001 From: Benni Mack <benni@typo3.org> Date: Thu, 21 Sep 2023 19:09:53 +0200 Subject: [PATCH] [BUGFIX] Enable "hide_in_menu" toggle in ContextMenu for custom doktypes Since TYPO3 v10 it is possible to use any number of doktype with "pages.doktype" and the limitation of custom doktypes "less than 200" was lifted. One part is still missing - the ContextMenu still has the limitation of only showing up for doktypes less than 200. This patch changes this behavior. Resolves: #101999 Releases: main, 12.4 Change-Id: I6971c9856297bc669d32cdf778be1883a1be54ed Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/81161 Tested-by: Oliver Bartsch <bo@cedev.de> Tested-by: Benni Mack <benni@typo3.org> Reviewed-by: Nikita Hovratov <nikita.h@live.de> Tested-by: Nikita Hovratov <nikita.h@live.de> Reviewed-by: Oliver Bartsch <bo@cedev.de> Reviewed-by: Benni Mack <benni@typo3.org> Tested-by: core-ci <typo3@b13.com> --- .../Classes/ContextMenu/ItemProviders/PageProvider.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/typo3/sysext/backend/Classes/ContextMenu/ItemProviders/PageProvider.php b/typo3/sysext/backend/Classes/ContextMenu/ItemProviders/PageProvider.php index 9161c269e733..88bb32cf4b21 100644 --- a/typo3/sysext/backend/Classes/ContextMenu/ItemProviders/PageProvider.php +++ b/typo3/sysext/backend/Classes/ContextMenu/ItemProviders/PageProvider.php @@ -532,9 +532,8 @@ class PageProvider extends RecordProvider } /** - * Checks if user has access to this column - * and the page doktype is lower than 200 (exclude sys_folder, ...) - * and it contains given value + * Checks if user has access to this column, the doktype + * is not excluded and that it contains the given value. */ protected function canBeToggled(string $fieldName, int $value): bool { @@ -542,7 +541,7 @@ class PageProvider extends RecordProvider return false; } if (!empty($GLOBALS['TCA'][$this->table]['columns'][$fieldName]['exclude']) - && $this->record['doktype'] <= PageRepository::DOKTYPE_SPACER + && !$this->isExcludedDoktype() && $this->backendUser->check('non_exclude_fields', $this->table . ':' . $fieldName) && $this->backendUser->check('tables_modify', $this->table) ) { -- GitLab