在一个基于MODx Revo的网站上工作,并试图编写一个simlpe插件(灵感来自过去为Evo编写的模板切换器插件)。以下是代码
if (isset($_GET['template'])) {
$template_id=$_GET['template'];
if(isset($template_id)){
$template = $modx->getObject('modTemplate', $template_id);
$modx->resource->template = $template->get('id');
}
}最终插件将包括更多的检查等,但现在我只想确保它的工作。想法很简单,它应该得到不同的模板为一个页面的基础上模板参数提供的网址。而阻止它按我想要的方式工作的问题是modx缓存。
我的问题是,如何操作缓存(清除/重新加载?)在这个特定的场景中,插件可以正常工作吗?
发布于 2012-09-23 21:41:21
试一试:
$modx->executeProcessor(array(
'location' => 'system',
'action' => 'clearCache',
));我认为,你可能真正想做的是在插件中而不是在代码片段中更改页面模板。看一下OnWebPagePrerender事件。http://rtfm.modx.com/display/revolution20/OnWebPagePrerender
此外,做一些测试,虽然一些事件在modx中列出并可用,但并不是所有的事件都实际实现了,即不会工作
*更新*
嗯-好的,试一下这个:
/* refresh all the core partitions */
$modx->cacheManager->refresh();请注意,在阅读了这里的文档后:http://rtfm.modx.com/display/revolution20/Caching对于不同版本的modx有不同的方法可用,其中一些已经折旧。..。所以一定要扫描文档,找到适合您的modx版本的方法。
https://stackoverflow.com/questions/12551443
复制相似问题