Вчера в 10:54
Артур, спасибо за помощь. Вчера вечером обнаружил, что ошибся в написании некоторых id элементов, а поэтому скрипт работал выборочно. До этого в упор ...
В миникорзине msMCD обновляется цена и счетчик на лету, а pagetitle и изображение только при обновле... 4
05 апреля 2025, 16:28
Спасибо! Только числа. Первый вариант сработал.
Как в mFilter2 добавить where? 2
03 апреля 2025, 17:07
Вроде как решилось ограничением в пакетах, чтобы отдавал по 100 товаров за раз. А так точно уже не помню, но щас точно все работает))
mSync после обновления перестал синхронизироваться 7
03 апреля 2025, 12:03
Спасибо! За ответ… Буду искать почему так. Жаль документации нет к компоненту…
msOptionPrice2 checkbox 5
02 апреля 2025, 10:27
Сменил системную настройку cache_format с сериализации на PHP и заработало.
Странно то, что с сериализацией всё работало нормально.
Как победить кеширование из-за которого слетел сайт modX 3 3
01 апреля 2025, 14:22
Большое спасибо за качественное и подробное описание!
Вообще считаю, что в нынешние времена, веб-аналитика в минишопе должна быть если не из коробк...
Отправка цели "Заказ оплачен" в Яндекс Метрику, если пользователь не вернулся на сайт из п... 1
31 марта 2025, 13:46
Ту тогда нужно смотреть лог ошибок сервера и modx. Сделай запуск скрипта создания наблюдателя из консоли сервера может там инфа об ошибке будет. Ну ес...
msImportExport 2.0 122
31 марта 2025, 01:02
core.transport.zip определяется некоторыми антивирусами как файл содержащий троян. Возможно ативирус перенес его в карантин по тихому. Либо во время о...
где core.transport.zip ? 5
31 марта 2025, 01:01
С большим объемом данных (магазин до 1млн товара) Марина (сравнивал на 11й версии) работает шустрее
MySQL или MariaDB 1
30 марта 2025, 09:00
В таблице msop есть поле description, допишите его в параметр msoptionsprice_window_modification_tabs и появится вкладка с текстовым полем у модификац...
Доработка плагина msOptionPrice2 1
1)создана категория с красным цветом
2)в категрии tv со значением color=red(подставить свjи параметры из get)
3)сниппет обертка с разбором гет парамтеров
foreach ($catalog_filter as $param){
$kv = explode('=',$param);
$_GET[$kv[0]] = $_REQUEST[$kv[0]] = $kv[1];
}
заменил на и все заработало
вывод тэга а в него уже на клиенте ждаваскриптом. что то типа на скорую руку.
javascript
и все заработало без тормозов
Делюсь опытом:
1) для общих страниц используется отдельный контекст, и храните общие страницы там, а подгружаете их в нужные контексты по 404, по алиасу ресурса, причем урлы можно сделать уникальные, чтобы сделать ресурсы максимально непохожими., но стандартная фция формирования url работать не будет в таком случае.
2) для каждого сайта отдельный контекст(можно групировать через отдельную таблицу несколько сайтов на контекст), для этого создал таблицу с урлами откуда потом можно управлять загрузкой и хранить доп параметры, в том числе и настройками конкретного домена.
3)разворачивать можно в отдельном докер контейнере каждый домен отдельно, где в момент подключения вольюма менять фактическое положение кэша на хост машине, в результате чего на уровне контейнера кэш будет изолирован.
4) картинки лучше вынести на отдельные поддомены, чтобы не пложить одинаковые.
Теперь о грусном, это кэш:
как написали выше «contextKey]/resources/[id]» лучше не делать, дело в том что кэш содержит в основном данные ресурса а вашем случае его плодить ненужно.
можно использовать кэш фенома, но он работает довольно скверно и плодит кучу дублей.
смотрел бы в сторону смарти
string(810) "#0 /usr/share/nginx/www/core/components/pdotools/model/pdotools/pdotools.class.php(45): pdoTools->setConfig(Array) #1 /usr/share/nginx/www/core/components/pdotools/model/pdotools/pdoparser.class.php(24): pdoTools->__construct(Object(modX)) #2 /usr/share/nginx/www/core/xpdo/xpdo.class.php(1236): pdoParser->__construct(Object(modX), Array) #3 /usr/share/nginx/www/core/model/modx/modx.class.php(719): xPDO->getService('parser', 'pdoParser', '/usr/share/ngin...') #4 /usr/share/nginx/www/core/model/modx/modelement.class.php(566): modX->getParser() #5 /usr/share/nginx/www/core/model/modx/modx.class.php(1673): modElement->getProperties() #6 /usr/share/nginx/www/core/model/modx/modx.class.php(568): modX->invokeEvent('OnMODXInit', Array) #7 /usr/share/nginx/www/index.php(50): modX->initialize('web') #8 {main}"
после события OnMODXInit
$this->config['useFenomCache'] = $this->modx->getOption('pdotools_fenom_cache', null, false);
До вызова OnHandleRequest
и уже проверка идет в методе fenom
if (!empty($this->config['useFenomCache'])) {
Поэтому установка этого свойства конечно меняет конфиг, но fenom его читает раньше
вообще то что получил сейчас это очень большой кэш в папке default/pdotools, на одну страницу приходится по 2 файла кэша, а с учетом того что у меня много ресурсов, + много виртуальных страниц, весь объем диск съедаю за раз. кэшировать все необходимости нет, только посещаемые страницы. но отключить кэш или принудительно включить не могу. в настройках есть только общая настройка pdotools_fenom_cache, отключив которую кэш не формируется, но и основные страницы работают медленно. Как вариант переписать xpdocachemanager.class.php, но там объект modx не содержит ресурса, и управлять кэшированием например через стандартную настройку ресурса возможности нет.