如何在 TYPO3 中禁用图像轮播的缓存

How to disable cache for a image carousel in TYPO3

我的 TYPO3 扩展有一个库,可以从总库存中随机生成 5 张图像,例如从 100 张图像中。这是在每次加载页面时随机完成的。仅默认启用 TYPO3 缓存,因此每次显示相同的 5 张图像。由于 lib 在网站的 header 中(因此在每个页面上),我不想禁用缓存。如何禁用只有这一个库的缓存?

打字错误:

plugin.tx_ExtName.widgets {
  Slider = USER
  Slider {
    userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
    vendorName = Name
    extensionName = ExtName
    pluginName = Backend
    controller = Customers
    action = Slider
    switchableControllerActions {
      Customers{
        1 = Slider
      }
    }
    settings =< plugin.tx_ExtName.settings
    persistence =< plugin.tx_ExtName.persistence
    view =< plugin.tx_ExtName.view
  }
}

lib {
    slider < plugin.tx_ExtName.widgets.Slider
}

在你的 ext_localconf.php 那里,你添加插件的地方使用了 configurePlugin 方法的第 4 个参数

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
    'Vendor.' . $_EXTKEY,
    'PluginName',
    array('Customers' => 'slider',),
    array('Customers' => 'slider',) // List non-cachable action(s)
);

当然要将 VendorNamePluginName 修改为您自己的。这将导致插件的操作不会被缓存,而整个页面仍将保留在缓存中。

备选方案

您也可以为此使用 JavaScript,只需在源代码中放置一个 JS 路径数组,并在文档加载时选择 5 个随机项目,这样您就可以避免非缓存内容。

替代解决方案:plugin.tx_ExtName.widgets.Slider = USER_INT。 这确保滑块插件始终未缓存。