【发布时间】:2022-01-06 12:35:08
【问题描述】:
使用typo3 v 10.4,我有一些后端用户组不允许移动页面的要求。我能够使用 RecordListHookInterface 隐藏页面列表视图中显示的箭头操作。但是在页面树中拖放仍然允许移动页面。是否有任何 TypoScript 设置可用于禁用页面树的拖放功能?
【问题讨论】:
标签: drag-and-drop typo3-10.x disable
使用typo3 v 10.4,我有一些后端用户组不允许移动页面的要求。我能够使用 RecordListHookInterface 隐藏页面列表视图中显示的箭头操作。但是在页面树中拖放仍然允许移动页面。是否有任何 TypoScript 设置可用于禁用页面树的拖放功能?
【问题讨论】:
标签: drag-and-drop typo3-10.x disable
不幸的是,没有针对此的 TypoScript 配置。但这可以通过“XClass”方法从核心扩展“TreeController”来完成:
<?php
namespace My\Namespace\XClass;
use TYPO3\CMS\Backend\Controller\Page\TreeController;
class XPageTreeController extends TreeController {
protected function isDragMoveAllowed(): bool {
if (!parent::isDragMoveAllowed()) {
return false;
}
$beUser = $this->getBackendUser();
return $beUser->isAdmin() || $beUser->isMemberOfGroup(123)
|| $beUser->isMemberOfGroup(234);
}
}
XClasses 必须像这样在 ext_localconf.php 中注册:
$GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects'][TYPO3\CMS\Backend\Controller\Page\TreeController::class] = [
'className' => My\Namespace\XClass\XPageTreeController::class
];
请注意,扩展核心类有一些缺点。例如,当切换到较新的 Typo3 版本时,功能可能会静默失败。
【讨论】: