由于某些缓存问题,如果存在某些URL参数,我需要明确绕过特定模块的缓存。我到达的解决方法是破解render()
中的libraries/joomla/document/html/renderer/module.php
函数,其行是:
function render( $module, $params = array(), $content = null )
{
// Existing code:
$mod_params = new JParameter( $module->params );
// My hack:
if ($module->module == 'mod_foo')
{
if (certain URL parameters are present)
{
$mod_params->set('cache', 0);
}
}
...
}
当然,破解核心joomla代码是一个糟糕的想法,我想尽可能避免。那么,是否有一个适当的钩子我可以插入以实现相同的目标?我不认为我可以在模块级别做任何事情,因为如果渲染器已经决定从缓存中获取它,它甚至都不会被检查。
答案 0 :(得分:0)
回答第一个问题,没有模块渲染事件,这里是the plugin doc's and the list of events in Joomla!
关闭模块的缓存。
请参阅The Art Of Joomla上的这篇文章,您可以查看其他文章: