Joomla 中的模块只调用一次

Posted

技术标签:

【中文标题】Joomla 中的模块只调用一次【英文标题】:Module in Joomla only called once 【发布时间】:2019-12-17 15:29:26 【问题描述】:

我有一个用

调用模块的组件
< ?php
$modules = JModuleHelper::getModules('modulename');
foreach ($modules as $module) 
echo JModuleHelper::renderModule($module);

? >

这在 foreach 语句中被多次调用,但是我注意到如果我将 rand() 或 microtime() 放入模块中,它似乎只执行一次然后复制到其他调用(如缓存?)。这是为什么?我需要该模块内的唯一 ID。有没有办法覆盖它并为每个模块渲染强制使用不同的内容?

【问题讨论】:

请将您的 Joomla 问题发布到 Joomla Stack Exchange。我们需要更多问题来帮助社区发展。 area51.stackexchange.com/proposals/58842?phase=beta 【参考方案1】:

它可能取决于缓存或模块的实现。

在全局级别,您可以在全局配置中禁用缓存;或者您可以阻止在单个模块的配置中使用缓存。

您应该将缓存设置为“保守”,而不是渐进式,因为后者确实会在单个页面上弄乱同一模块的副本。

最后,缓存是在模块代码中实现的,所以它最终是在假设所有开发者都正确实现所有缓存策略的前提下运行的;大多数扩展都是如此,但不是全部。

【讨论】:

以上是关于Joomla 中的模块只调用一次的主要内容,如果未能解决你的问题,请参考以下文章

Joomla /为文章类别模块添加类别描述

需要Joomla指南

如何在自定义模块(Joomla 1.7)中使用自定义组件中的函数?

将对象从组件发送到模块 - Joomla

如何将 Joomla 组件调用到模块中?

未从自定义 joomla 组件调用自定义面包屑模块