Кэширование плагина Modx

Работаю над сайтом на основе MODx Revo и пытаюсь написать простой плагин (вдохновленный плагином переключения шаблонов, написанным в прошлом для 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