Вопрос по обновлению кэша на сайте на MODX после парсинга.
Здравствуйте!
Извините, мой уровень знаний в программировании примерно как у «чайника», поэтому делайте, пожалуйста, скидки при ответах)
При отработке скрипта, который парсит всего 4 значения для сайта, в том числе количество товара. В админке значения изменяются, а для пользователей остаются старые и висят невесть сколь долго((( Подозреваю что-то не так в настройках обновления кэша. Думаю где-то здесь собака порылась:
Помогите разобраться, желательно с комментариями, ибо не программист я( Заранее благодарен за подсказки.
Извините, мой уровень знаний в программировании примерно как у «чайника», поэтому делайте, пожалуйста, скидки при ответах)
При отработке скрипта, который парсит всего 4 значения для сайта, в том числе количество товара. В админке значения изменяются, а для пользователей остаются старые и висят невесть сколь долго((( Подозреваю что-то не так в настройках обновления кэша. Думаю где-то здесь собака порылась:
// очищаем кэш обновленных ресурсов
$resources=$modx->getCollection('modResource',array(
'id' => array_unique($contentids)
));
foreach ($resources as $key => $resource) {
$cacheKey=$resource->getCacheKey();
$modx->cacheManager->refresh(array(
'resource' => array('key' => $cacheKey),
));
}
Хотелось бы чтобы после отработки скрипта — обновлялось и значение количество, так как только оно и видно для пользователя.Помогите разобраться, желательно с комментариями, ибо не программист я( Заранее благодарен за подсказки.
Комментарии: 3
Если количество товара выводится не только на странице самого товара, а еще, к примеру, в категориях, то лучше после парсинга чистить кеш всего сайта и вместо приведенного Вами кода поставить это:
Если выводится только на странице товара (и если в массиве $contentids у Вас ID обновленных ресурсов), то так:
$modx->cacheManager->refresh();
Если выводится только на странице товара (и если в массиве $contentids у Вас ID обновленных ресурсов), то так:
// очищаем кэш обновленных ресурсов
$ids = array_unique($contentids);
foreach($ids as $id){
$resource=$modx->getObject('modResource',$id);
$cacheKey = $resource->getCacheKey();
$modx->cacheManager->refresh(array('resource' => array('key' => $cacheKey)));
}
Да, количество, только на странице товара.
Огромное спасибо, сейчас поменяю код попробую, что получится, обязательно отпишусь!
Огромное спасибо, сейчас поменяю код попробую, что получится, обязательно отпишусь!
Еще раз спасибо за помощь — все заработало вроде, стало адекватно обновляться!!!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.