Url中的TYPO3 Extbase参数将被忽略。没有采取任何行动

时间:2019-06-11 08:18:29

标签: typo3 extbase

我正在编写一个扩展程序,用于检查浏览器版本,如果不支持该版本,则会显示提示。 我正在使用排印条件进行此操作,到目前为止效果很好。但是提示中有一个忽略的链接。该链接应在控制器“ BrowserCheck”中调用我的操作“ setSessionParameters”。如果单击链接,则将调用正确的url,但将显示与以前相同的输出(提示)。该动作将被完全忽略。我试图执行一个不存在的操作,但是甚至没有调用异常,这对我而言意味着:不会检查ext_localconf中是否允许该问题,并且不会在控制器中对其进行检查。 我认为错字配置可能是个问题,但是我找不到解决方案。有人可以帮忙吗? 请在下面查看我的代码

ext_localconf.php:

    \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
        'VENDOR.' . $extensionKey,
        'browsercheck',
        [
            'BrowserCheck' => 'setSessionParameter',
        ],
        [
            'BrowserCheck' => 'setSessionParameter',
        ]
    );

page.typoscript:

    page = PAGE
    [session('wcobrowsercheck') == "ignore" || checkInternetExplorer()]
    page{
       //normal setup
    }
    [ELSE]
    // called setup for hint-case
    page >
    page = PAGE
    page{
        typeNum = 0
        shortcutIcon = {$files.favicon.path}
        10 = FLUIDTEMPLATE
        10 {
          templateRootPaths {
              0 = EXT:my_extension/Resources/Private/Templates/BrowserCheck
          }
          layoutRootPaths {
              0 = EXT:my_extension/Resources/Private/Layouts/BrowserCheck
          }

          templateName = MainPage
          }
          includeCSS {
            ...
           }
     }
     [END]

链接调用在模板中:

    <f:link.action controller="BrowserCheck" action="setSessionParameters" extensionName="my_extension" pluginName="browsercheck" arguments="{ignore: 'true'}"> ignore </f:link.action>

1 个答案:

答案 0 :(得分:0)

我发现您的设置有2个问题。

  1. 您两次定义PAGE对象。第二次您擦除所有以前的配置
  2. 我看不到您已将插件放置在页面上。

由于您的问题针对的是第二个问题,如果您希望该插件随处可见,建议您通过拼写将插件添加到页面。

page = PAGE
// ...
page.999 < tt_content.list.20.extkey_pluginname

或者您使用放置在页面上的插件作为内容元素。两者都会起作用。但是使用当前设置,您将无法调用该插件,因为该插件不在页面上。