【问题标题】:Frontend plugin which is included via typoScript does not work in TYPO3 8.7 anymore通过typoScript 包含的前端插件不再在TYPO3 8.7 中工作
【发布时间】:2018-01-18 18:20:43
【问题描述】:

在 TYPO3 7.6 中,我定义了一个类型为“PLUGIN_TYPE_CONTENT_ELEMENT”的前端插件。

ext_localconf.php:

ExtensionUtility::configurePlugin(
    'MyVendor.' . $_EXTKEY,
    'Maildownload',
    ['Maildownload' => 'show'],
    [],
    ExtensionUtility::PLUGIN_TYPE_CONTENT_ELEMENT
);

configurePlugin 方法创建一个typoScript Setup,其中调用Extbase 的Bootstrap 类的“run()”方法:

...
tt_content.myext_maildownload.20 = USER
tt_content.myext_maildownload20.userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
...

这意味着 Extbase 通过在我的扩展程序的“Maildownload”控制器中调用“show”操作来处理请求。

我通过 ajax 调用我的插件。这意味着,我用单独的 typenum 定义了一个页面,并通过typoScript 包含插件:

setup.ts

ajax_page = PAGE
ajax_page {
  typeNum = 123
  config.disableAllHeaderCode = 1
  config.metaCharset = UTF-8
  config.debug = 0
  config.additionalHeaders = Content-type:application/json
  config.xhtml_cleaning = 0
  config.adminPanel = 0

  10 < tt_content.myext_maildownload
}

当我调用页面 index.php?type=123 时,控制器“Maildownload”中的“show”动作将被执行。

升级到 TYPO3 8.7 后,这种行为明显改变了。

“configurePlugin()”方法生成的typoScript代码还是一样的。当我调用页面 index.php?type=123 时,TYPO3 将其呈现为普通内容元素,不再调用 TYPO3\CMS\Extbase\Core\Bootstrap->run 方法。所以我的 showAction 方法不会被调用。

我现在可以定义一个 dataProcessor 类并将 showAction 移入其中。 但这不是一个很好的解决方案,因为我不想绕过完整的 extbase 渲染过程。

现在是否有一种新方法可以将我的插件包含到页面中,以便将其视为 extbase 插件而不是内容元素?

【问题讨论】:

  • 将 pluginName,vendorName 定义为 tt_content.myext_maildownload20。如果您没有 url 控制器和操作名称,请使用 switchableControllerActions

标签: typo3-8.x


【解决方案1】:

@andrei 感谢您的回复,但没有达到重点。

同时我发现问题的原因是 TYPO3 8.5 中的这种重大更改:https://docs.typo3.org/typo3cms/extensions/core/Changelog/8.5/Breaking-78002-EnforceCHashArgumentForExtbaseActions.html?highlight=chash

所以一个可能的解决方案是在typoScript插件设置中将requireCHashArgumentForActionArguments设置为false:

plugin.tx_myextension {

   features.requireCHashArgumentForActionArguments = 0

   ...

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多