diff --git a/typo3/sysext/backend/Classes/Tree/Pagetree/ExtdirectTreeDataProvider.php b/typo3/sysext/backend/Classes/Tree/Pagetree/ExtdirectTreeDataProvider.php index 8dd5dcd5400857f9e13ed9b8401493dad886a584..defbcfa633a827895e653ae38b9dd671699dcdb0 100644 --- a/typo3/sysext/backend/Classes/Tree/Pagetree/ExtdirectTreeDataProvider.php +++ b/typo3/sysext/backend/Classes/Tree/Pagetree/ExtdirectTreeDataProvider.php @@ -125,8 +125,12 @@ class ExtdirectTreeDataProvider extends \TYPO3\CMS\Backend\Tree\AbstractExtJsTre } $doktypes = GeneralUtility::trimExplode(',', $GLOBALS['BE_USER']->getTSConfigVal('options.pageTree.doktypesToShowInNewPageDragArea')); $output = array(); - $allowedDoktypes = GeneralUtility::trimExplode(',', $GLOBALS['BE_USER']->groupData['pagetypes_select']); + $allowedDoktypes = GeneralUtility::trimExplode(',', $GLOBALS['BE_USER']->groupData['pagetypes_select'], TRUE); $isAdmin = $GLOBALS['BE_USER']->isAdmin(); + // Early return if backend user may not create any doktype + if (!$isAdmin && empty($allowedDoktypes)) { + return $output; + } foreach ($doktypes as $doktype) { if (!$isAdmin && !in_array($doktype, $allowedDoktypes)) { continue; diff --git a/typo3/sysext/backend/Resources/Public/JavaScript/extjs/components/pagetree/javascript/toppanel.js b/typo3/sysext/backend/Resources/Public/JavaScript/extjs/components/pagetree/javascript/toppanel.js index db418ec2a456d03a1357c9bb530ddeb1c83456fb..0015a046d5f8767aaf483f0ecdc3cdd27ef7e327 100644 --- a/typo3/sysext/backend/Resources/Public/JavaScript/extjs/components/pagetree/javascript/toppanel.js +++ b/typo3/sysext/backend/Resources/Public/JavaScript/extjs/components/pagetree/javascript/toppanel.js @@ -426,18 +426,23 @@ TYPO3.Components.PageTree.TopPanel = Ext.extend(Ext.Panel, { }); this.dataProvider.getNodeTypes(function(response) { - for (var i = 0; i < response.length; ++i) { - response[i].template = this.getButtonTemplate(); - newNodeToolbar.addItem(response[i]); + var amountOfNodeTypes = response.length; + if (amountOfNodeTypes > 0) { + topPanelButton.show(); + for (var i = 0; i < amountOfNodeTypes; ++i) { + response[i].template = this.getButtonTemplate(); + newNodeToolbar.addItem(response[i]); + } + newNodeToolbar.doLayout(); } - newNodeToolbar.doLayout(); }, this); var topPanelButton = new Ext.Button({ id: this.id + '-button-newNode', cls: this.id + '-button', text: TYPO3.Components.PageTree.Icons.NewNode, - tooltip: TYPO3.Components.PageTree.LLL.buttonNewNode + tooltip: TYPO3.Components.PageTree.LLL.buttonNewNode, + hidden: true }); this.addButton(topPanelButton, newNodeToolbar);