【问题标题】:TYPO3 Plugin - One action public access and one privateTYPO3 插件 - 一项公共访问和一项私人操作
【发布时间】:2016-11-29 10:38:05
【问题描述】:

我正在开发一个包含记录列表(操作show)和发送新记录的表单(操作new)的扩展。

列表必须是供公众访问的,但表单必须需要登录表单(我使用的是 TYPO3 附带的登录表单内容类型)。

我尝试使用插件的访问选项卡选择在任何登录时显示,但它适用于整个插件而不是每个操作。

目前,页面是这样的:

只有在有人尝试创建新记录时,我才能显示登录表单?

注意:该扩展基于 Extbase 和 Fluid。目标版本是 TYPO3 6.2。

【问题讨论】:

    标签: login controller typo3 extbase typo3-6.2.x


    【解决方案1】:

    最简单的方法是在您的弹性表单中使用switchableControllerActions 将操作拆分为不同的“视图”。然后,您需要在两个不同的页面上放置单独的插件,这样您就可以对插件进行不同的访问配置。如果你不知道如何调整flexform,你可以在这里发布它的内容。

    另一种方法是在控制器内部进行检查,但我只会在您需要检查很多不同的角色时使用它。

        if ($this->loginUser === null && $GLOBALS['TSFE']->loginUser && !empty($GLOBALS['TSFE']->fe_user->user['uid'])) {
            // the user is logged in
        } else {
            // return '' as action content
            return '';
        }
    

    【讨论】:

    • 如果这样做,我不确定 new 操作是否在可公开访问的插件中不可访问 - 您可能只需要操作公共页面的 URL 并添加参数 @ 987654324@给它。
    • 配置switchableControllerActions的要点是只能调用配置好的动作,其他的动作对插件都是不存在的。然后您可以在插件配置中选择所需的“视图”
    • 看来你是对的,在我看来这只是一个显示的东西,只考虑了来自configurePlugin 的配置。我的立场是正确的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    • 2015-12-11
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多