4 часа назад
Специально для тебя. Купил поставил компонент и разобрался с ошибкой :-).
В файле core/components/msorderfields/model/msorderfields.class.php заменит...
msOrderFields. Управление полями заказа. 47
7 часов назад
Сложностей мне и так хватает. У меня gtsAPI используется в работе. А для документации и кейсов делать слишком длинные уроки разве разумно?
PVAdmin мини-админка для MODX 2.8 16
Вчера в 02:26
Какая версия MODX?
Selectel S3 + AWS S3 Media Source 3.0 как источник файлов для галереи изображений 2
Вчера в 01:47
Наталья,
так скажем шаблоны для разработки
MODX2
github.com/Boshnik/modExtra
MODX3
github.com/modx-pro/ModExtra3
Разработка нового дополнения 9
18 сентября 2025, 20:04
Есть ещё вариант дописывать vin в pagetitle плагином на сохранение ресурса
Вывод TV в дереве ресурсов 4
18 сентября 2025, 17:14
так, а в чем проблема во втором абзаце, не очень понял?
$modx->addEventListenerClosure(
'OnWebPagePrerender',
function (\MODX\Revolution...
Предложение нового механизма closure и слушателей событий в bootstrap неймспейсов MODX с приоритетам... 8
18 сентября 2025, 11:07
Ну логично. Скрипт делает выборку по таблице modResource, и там такого поля нет. Оно лежит в другой таблице msProductOption.
Попробуй писать msProdu...
Сортировка msfilter2 по msOption 1
18 сентября 2025, 01:09
Что РКН с инетом делает?? гитхаб не открывается, а впн помогло :-(
[SendIt 2.5.0] Дополнительная защита от SQL-инъекций 5
17 сентября 2025, 19:47
Делай всё, что связано с контекстами и языками и мобильной версией на событие OnHandleRequest, на OnMODXInit это просто бессмысленно. А в остальном ло...
Переход с неудачного решения по смене контекста И по определению версии (моб/десктоп.) на ModHelpers... 2
15 сентября 2025, 19:50
Подскажите, как включить поле title в окошке добавления изображения в редактор?
Установка, настройка и кастомизация редактора TinyMCE Rich Text Editor 29
Всего 125 086 комментариев
Нужно удалить запятую у последней ссылки. Иначе этот список, который фактически является JSON-строкой, не будет преобразован в массив. То есть список должен выглядеть вот так:
Надеюсь это кому-нибудь поможет.
И ещё. Хочу сказать огромное спасибо разработчикам за проделанную титаническую работу! Очень жду, как и многие, модуль в общем доступе уже в репозиториях, хотя, думаю, из-за объёма работ и параллельных забот, это произойдёт не скоро.
Где selector оказывается пустым, и, соответственно, скрипт не может определить где корзина, что бы обновить её. Честно, пока не пойму откуда он должен получить идентификатор контейнера корзины… Возможно id блока где-то можно указать, но я не нашёл где… Возможно скрипт сам его получает где-то… Для проверки в строку
вставил, добавленный мною на сайте идентификатор msMiniCart (взятый с minisop2 в надежде что его добавление «чудесным образом» позволит корзине обновляться, но не тут то было), получив
и корзина полноценно заработала. Пока остановлюсь на этом… мне этого пока достаточно, что бы продолжить другие работы по сайту, но, возможно, скоро я снова погружусь в интересный процесс доработки кода.
Теперь ошибка в консоли вот такая. Что-то не так в функции updateToken, ошибка уже не на какой-то конкретной строке, а выводится из try/catch
на
Ошибка пропала. На странице, при нажатии на кнопку добавления товара в корзину, появилось всплывающее модальное об отсутствии токена (ранее страница просто перезагружалась). Копаюсь дальше. Сейчас видна в консоли другая ошибка:
И ещё — у этих-же сайтов ссылка на админку вида "/manager", или своя?
Пока была надежда что кто-то прям с такой же проблемой столкнулся кто-то, поэтому не прикреплял скриншоты. Сейчас будут подробности. Вот тут указаны эти методы, в самом репозитории модуля — https://github.com/modx-pro/MiniShop3/issues/15
Вот скриншот из консоли браузера
Если что, вот сама страница где тестовый товар. Перейдя в него, можно увидеть кнопку так же добавления товара в корзину.
В каталоге ошибка в консоли вылазит сразу при загрузке страницы, так же и в карточке товара.
Вот скриншот блока кода из файла:
На гите есть упоминание этой функции и пометка что «Метод setToken является асинхронной, но вызывается как синхронный. Возможны ошибки в будущем.». Может кто-то знает как убраь эту ошибку?
В идеале вообще автоматизировать и качать всё новое бесплатное из репозитория MODX / modstore, распаковывать и забивать в БД:
— название: MODX или дополнение
— версия дистрибутива
— путь к файлу
— sha1 хэш файла
Так-то я знаю, что в leftJoin указываются соответствия строк таблиц, но что после объявления псевдонима дальше используется только он — это я забыла. Спасибо!
Подкидываю альтернативную идею, если интересно — проверять версию MODX (или брать из настроек), скачивать соответствующий дистрибутив, и проверять хэши файлов сайта по файлам дистрибутива.
То есть, берём оригинальные файлы index.php в connectors, manager и корне, а так же файлы из core — и проверяем, чтобы все они присутствовали на сайте с оригинальным хэшем.
Если все основные файлы не изменены, то сайт не заражён и должен работать корректно.
Правда, есть еще возможность заражения только файлов дополнений, без ядра. Наверное, можно и их сверять с дистрибутивами из репозитория по той же логике — скачать нужную версию и сравнить хэши…
Кстати, вот вам еще идея — создать онлайн базу для проверки хэшей файлов MODX и дополнений через API. Чтобы простые GET запросы, типа /api/hash/modx/2.8.1/core/model/modx.class.php возвращали sha1 хэш запрошенного файла или 404.
Конечно, это не спасёт от уже залитых шеллов и вредоносов, но они не будут запускаться через сайт. А если запустятся и что-то изменят, то следующая проверка это покажет. И если раз за разом файлы будут меняться — то можно уже более внимательно искать, что там такое у вас залито.
И кажется ты не понимаешь что это за магические письмена
Первым аргументом в метод leftJoin передаётся имя класса ('goodStarVoteCount'); вторым псевдоним для таблицы ( 'countaverage'), если не передать будет взято имя класса; третьим аргументом передаётся условие соединение таблиц как в операторе ON в SQL ( 'modResource.id = countaverage.thread').
На чистом SQL запрос будет примерно таким
Как видишь в секциях SELECT и ON используется псевдоним таблицы, в xPDO тоже надо использовать псевдонимы, если они указаны в leftJoin или setTableAlias. Поэтому вот это всё
неверно, должно быть так
И наконец, чтобы проверить какой же запрос будет выполнен можно сделать так