Сброс кэша при автопубликации ресурса [MODX]

06 Сентября 2024
php

Задача: сбросить кэш при автопубликовании ресурсов.

На самом деле задача простая, но так как люди не хотят читать документацию, постоянно появляются проблемы и вопросы.

Суть простая, в плагин с событием OnResourceAutoPublish НЕ приходит объект $resource, а приходит только массив $results.

По этому, чтобы получить id ресурса нужно работать с массивом ресурсов.

  1. Создаем плагин с любым названием и ставим галочку на событие OnResourceAutoPublish
  2. Очищаем кэш, подробнее здесь

Пример: очищаем кэш с динамичным ключом page_article_$id, при автопубликации

switch ($modx->event->name) {
    case 'OnResourceAutoPublish':
        foreach($results['published_resources'] as $resource){
            $id=$resource['id'];
            $modx->cacheManager->delete('page_article_'.$id);
            $modx->log(1, 'Автопубликация: '.$id);
        }
    break;
}