0

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'); 
   }

}

最終的には、プラグインにはさらに多くのチェックなどが含まれますが、今のところ、機能することを確認したいだけです. アイデアは単純です。URL で提供されるテンプレート パラメータに基づいて、ページの異なるテンプレートを取得することになっています。そして、私が望むように動作するのを妨げる問題は、modx キャッシングです。

私の質問は、プラグインが機能するように、この特定のシナリオでキャッシュを操作 (クリア/リロード) するにはどうすればよいですか?

4

1 に答える 1

0

これを試してみてください:

$modx->executeProcessor(array(
   'location' => 'system',
   'action' => 'clearCache',
));

実際にやりたいことは、スニペットではなくプラグインでページ テンプレートの変更を調査することだと思います。OnWebPagePrerender イベントを見てください。http://rtfm.modx.com/display/revolution20/OnWebPagePrerender

また、いくつかのイベントが一覧表示されて modx で利用可能になっている間、いくつかのテストを行いますが、それらのすべてがまだ実際に実装されているわけではありません [つまり、機能しません] [その親ページをのぞいてみてください: http://rtfm.modx.com /display/revolution20/プラグイン]

*アップデート***

うーん - わかりました、これを試してみてください:

/* refresh all the core partitions */
$modx->cacheManager->refresh();

ここでドキュメントを読んだ後、http://rtfm.modx.com/display/revolution20/Caching に注意してください。modxのバージョンごとに異なる方法があり、一部は減価償却されています。... したがって、ドキュメントをスキャンして、使用している modx のバージョンに適した方法を見つけてください。

于 2012-09-23T13:41:21.233 に答える