Очистить кеш при создании страницы из фронтенда?
Использую дополнение ms2form для создания страниц через фронтенд. Беда в том, что при создании кеш не обновляется, и все ссылки, ведущие на новый документ (хлебные крошки, к примеру) не работают пока не почистить кеш вручную в админке. Это не есть хорошо, так как на сайте предполагается большое количество создаваемых пользователями страниц.
Создал плагин на событие OnDocFormSave с кодом:
Как я понял, при сохранении формы должен чиститься кеш родительского документа с id 106 и его дочерних документов. Но почему-то ничего не происходит.
Подскажите, что и куда нужно прописать, чтобы при создании страницы обновлялся кеш?
Создал плагин на событие OnDocFormSave с кодом:
<?php
$res = $modx->getObject('modResource', 106);
$res->clearCache();
Как я понял, при сохранении формы должен чиститься кеш родительского документа с id 106 и его дочерних документов. Но почему-то ничего не происходит.
Подскажите, что и куда нужно прописать, чтобы при создании страницы обновлялся кеш?
Комментарии: 5
В настройках системы отключал параметры cache_system_settings, cache_scripts и включал cache_disabled — без толку (
В логах тоже ничего не пишет.
Надо юзать $modx->cacheManager->refresh();
Подробнее про опции смотри тут rtfm.modx.com/revolution/2.x/developing-in-modx/advanced-development/caching
Подробнее про опции смотри тут rtfm.modx.com/revolution/2.x/developing-in-modx/advanced-development/caching
Изначально так и делал, реакции также никакой.
Да и, на сколько я понимаю, этот вариант чистит кеш всей админки. Это плохо, т.к. если много пользователей одновременно будут создавать страницы — сайт подохнет.
Я в тикетсах копался, но так и не понял, как там это работает. А там работает именно так, как надо.
Да и, на сколько я понимаю, этот вариант чистит кеш всей админки. Это плохо, т.к. если много пользователей одновременно будут создавать страницы — сайт подохнет.
Я в тикетсах копался, но так и не понял, как там это работает. А там работает именно так, как надо.
Если юзать чисто $modx->cacheManager->refresh();, то да, весь кеш чиститься, но я не просто так кинул тебе сцыль на доки. Посмотри там в конце примеры, эта конструкция принимает 2 параметра: $paths и $options
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.