Сброс кэша при автопубликации ресурса [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;
}