Кеширане на плъгини Modx

Работя върху базиран на 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.

Въпросът ми е как мога да манипулирам кеша (изчистване/презареждане?) при този конкретен сценарий, така че приставката да върши работата си?


person vault-boy    schedule 23.09.2012    source източник


Отговори (1)


Завъртете това:

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

Мисля, че това, което всъщност бихте искали да направите, е да проучите промяната на шаблона на вашата страница в плъгин, а не във фрагмент. разгледайте събитието OnWebPagePrerender. http://rtfm.modx.com/display/revolution20/OnWebPagePrerender

Също така, направете някои тестове, въпреки че някои събития са изброени и налични в modx, не всички от тях все още са внедрени [т.е. няма да работи] [също надникнете в тази родителска страница: http://rtfm.modx.com/display/revolution20/Plugins]

*АКТУАЛИЗАЦИЯ***

хм - добре, опитайте това:

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

имайте предвид, че след като прочетете документите тук: http://rtfm.modx.com/display/revolution20/Caching има различни методи, налични за различните версии на modx, някои от които са амортизирани. ... така че определено сканирайте документите за подходящия метод за вашата версия на modx.

person Sean Kimball    schedule 23.09.2012
comment
executeProcessor всъщност изглежда е недефиниран метод в Revo - person vault-boy; 23.09.2012
comment
хммм... Не тествах това, но вместо това погледнах документите. вижте моите актуализации по-горе. - person Sean Kimball; 24.09.2012