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

时间:2015-05-25 18:24:45

标签: caching typo3 typoscript extbase typo3-6.2.x

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

的TypoScript:

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
}

2 个答案:

答案 0 :(得分:0)

在你的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个随机项,它将允许您避免使用非缓存内容。

答案 1 :(得分:0)

替代解决方案:plugin.tx_ExtName.widgets.Slider = USER_INT。 这可以确保Slider插件始终处于未缓存状态。