Не знаю куда копать.
После обновления с 2.3.3 до 2.4.2 в Консоли ошибок стала плодиться ошибка:
(ERROR @ /index.php) Could not load class: shopModx from shopmodx. (ERROR @ /index.php) Problem getting service shopModx, instance of class shopModx, from path /site_dir/core/components/shopmodx/model/
При этом иногда бывает так, что при добавление товара в корзине оказывается совершенно другой или их несколько, не работает очистка корзины через раз (может это не взаимосвязанно).
В консоли print (int)!empty($modx->getService('modxsite'));
[2016-03-01 10:20:09] (ERROR @ /manager/components/console/connectors/console.php) Could not load class: modxsite from modxsite. [2016-03-01 10:20:09] (ERROR @ /manager/components/console/connectors/console.php) Problem getting service modxsite, instance of class modxsite, from path 0
В консоли print (int)!empty($modx->newObject('Order'));
[2016-03-01 10:21:42] (ERROR @ /manager/components/console/connectors/console.php) Could not load class: Order from mysql.order. 0
На сервере MySQL 5.6
К сожалению я не бэкендщик — не могу ходу понять и разобраться. Очень надеюсь на вашу помощь
Это старая и темная бага MODX-а, ее уже не раз обсуждали.
1. Сделайте бэкап сайта
2. Выполните в консоли код:
<?php $q = $modx->newQuery('modExtensionPackage'); $q->command('delete'); $s = $q->prepare(); // print $q->toSQL(); $s->execute();
3. Удалите папку core/cache/
Это должно решить проблему с (ERROR @ /index.php) Could not load class: shopModx from shopmodx.
А вот Could not load class: Order from mysql.order. — вот это уже скорее всего не полностью установился движок магазина. У вас сервер нормальный линуксовый или на локалхосте виндовом?
На beget.
На бегете обычно все работало. Попробуйте то, что я сказал сделать.
Да, спасибо большое — ошибка исчезла. Проблема не исчезла. Причем только в Хроме. Корзина ведет себя как хочет. При пустой корзине показывает в блоке миникорзины показывает, что есть товар на n-ую сумму, кнопка очистить не работает. В Журнале ошибок — ошибки кэширования
[2016-03-01 18:20:03] (ERROR @ /index.php) Encountered empty IN condition with key id [2016-03-01 18:20:03] (ERROR @ /site_dir/core/cache/includes/elements/modplugin/24.include.cache.php : 101) PHP warning: Cannot modify header information - headers already sent by (output started at /home/k/kotyle/tafguyhockey.ru/public_html/core/model/modx/modresponse.class.php:189)<b>Warning</b>: strftime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in <b>/home/k/kotyle/tafguyhockey.ru/public_html/core/xpdo/xpdo.class.php</b> on line <b>2055</b><br /> [2016-03-01 18:21:18] (ERROR @ /assets/components/shopkeeper/connector_fe.php) Could not load class: phpTemplateResource from mysql.phptemplateresource.
Всё началось с переезда на 2.4.2-pl
Магазин переустанавливали.
Такое ощущение, что он кэшируется. А вот как вызывать сниппет не кэшируемым в {snippet name="" param=""} не знаю.
Проблема вроде бы решилась удалением расширения xFCE
У вас не проблема с кешированием. Кеш — это в данном случае кеш-код плагина. А мат главный на то, что не может отправить заголовки, так как уже в другом элементе отправлен текст.
Просто этот блок должен работать в некешируемом элементе.