【问题标题】:Typo3 disable drag and drop in page treeTypo3 禁用页面树中的拖放
【发布时间】:2022-01-06 12:35:08
【问题描述】:

使用typo3 v 10.4,我有一些后端用户组不允许移动页面的要求。我能够使用 RecordListHookInterface 隐藏页面列表视图中显示的箭头操作。但是在页面树中拖放仍然允许移动页面。是否有任何 TypoScript 设置可用于禁用页面树的拖放功能?

【问题讨论】:

    标签: drag-and-drop typo3-10.x disable


    【解决方案1】:

    不幸的是,没有针对此的 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 版本时,功能可能会静默失败。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-02
      • 1970-01-01
      相关资源
      最近更新 更多