0

我正在编写一个检查浏览器版本的扩展程序,如果不支持该版本,则会显示一个提示。我正在使用打字稿条件执行此操作,到目前为止效果很好。但在提示中是一个忽略的链接。该链接应在控制器“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>
4

1 回答 1

0

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

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

由于您的问题针对第二个问题,如果您希望该插件随处可用,我建议您通过打字稿将插件添加到页面。

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

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

于 2019-06-11T12:15:41.317 回答