Всего 125 011 комментариев

Александр Туниеков
23 мая 2025, 02:20
0
Понять, где должна происходить инициализации ymaps3, не получилось. Баг разработчика какой-то
Или неправильная настройка. У нас тут пишет invalid api key. В яндексе много апи. Какое надо? Мы пробовали JavaScript API и HTTP Геокодер
Александр Туниеков
22 мая 2025, 23:40
0
3 часа веселия Артур нам обеспечил :-). Код тарифа теперь зачем-то в настройке описания тарифа.

Без нее корзина ложиться наглухо. Даже если никакие доставки сдек не включены.
Теперь буду знать, что в степени бардака в програмировании нам есть куда стремиться :-).

Только карта ПВЗ так и не заработала. В консоле ошибки


Понять, где должна происходить инициализации ymaps3, не получилось. Баг разработчика какой-то.
@Артур Шевченко поправь плиз.
SYAN
22 мая 2025, 22:41
0
тот же вопрос по диапозону дат. готового решения так никто и не озвучит?
Алексей Суслов
22 мая 2025, 18:08
0
Пока ни один в теме не сказал, что у него сайт заразился на каком-то другом хостинге в эти дни.
У меня на поддержке больше 5 сайтов с разными версиями modx и разными дополнениями, везде все ок, только один на таймвебе заразился.
Причем после чистки этого сайта, я ничего абсолютно не обновлял, а заражений новых с того момента нет — если бы была дырка или уязвимость в modx и его компонентах — почти наверняка уже бы снова заразили.
Василий Наумкин
22 мая 2025, 18:00
+2
Да, конечно. Разве что кроме архива core.transport.zip.

Смысл же в том, чтобы сравнить свои файлы с эталонными на предмет изменений. Файлы ядра меняться не должны.
Максим
22 мая 2025, 17:00
0
Да, ещё добавлю момент важный, с которым я столкнулся в самом начале, после установки модуля. В системных настройках MiniShop3 есть параметр ms3_frontend_assets, в нём указан перечень css/js файлов что будут подключены на страницах сайта. Собственно, в этом списке есть опечатка/ошибка, которая не позволяет добавить эти ссылки скриптом. По умолчанию этот список выглядит вот так:

[
	"[[+cssUrl]]web\/lib\/izitoast\/iziToast.min.css",
	"[[+jsUrl]]web\/lib\/izitoast\/iziToast.js",
	"[[+jsUrl]]web\/ms3.js",
	"[[+jsUrl]]web\/modules\/hooks.js",
	"[[+jsUrl]]web\/modules\/form.js",
	"[[+jsUrl]]web\/modules\/request.js", 
	"[[+jsUrl]]web\/modules\/cart.js",
	"[[+jsUrl]]web\/modules\/customer.js",
	"[[+jsUrl]]web\/modules\/order.js",
	"[[+jsUrl]]web\/modules\/message.js",
]
Нужно удалить запятую у последней ссылки. Иначе этот список, который фактически является JSON-строкой, не будет преобразован в массив. То есть список должен выглядеть вот так:

[
	"[[+cssUrl]]web\/lib\/izitoast\/iziToast.min.css",
	"[[+jsUrl]]web\/lib\/izitoast\/iziToast.js",
	"[[+jsUrl]]web\/ms3.js",
	"[[+jsUrl]]web\/modules\/hooks.js",
	"[[+jsUrl]]web\/modules\/form.js",
	"[[+jsUrl]]web\/modules\/request.js", 
	"[[+jsUrl]]web\/modules\/cart.js",
	"[[+jsUrl]]web\/modules\/customer.js",
	"[[+jsUrl]]web\/modules\/order.js",
	"[[+jsUrl]]web\/modules\/message.js"
]
Надеюсь это кому-нибудь поможет.

И ещё. Хочу сказать огромное спасибо разработчикам за проделанную титаническую работу! Очень жду, как и многие, модуль в общем доступе уже в репозиториях, хотя, думаю, из-за объёма работ и параллельных забот, это произойдёт не скоро.
Максим
22 мая 2025, 16:46
0
Продвинулся ещё немного, в файле cart.js, который находится по адресу assets/components/minishop3/js/web/modules/ есть строки:

render: function (response) {
    const cartRender = response.data.render.cart
    console.log(response);

    for (const key in cartRender) {
      const { selector, render } = cartRender[key]
      
      const $element = document.querySelector(selector)

      if ($element) {
        $element.innerHTML = render
      }
    }
  },
Где selector оказывается пустым, и, соответственно, скрипт не может определить где корзина, что бы обновить её. Честно, пока не пойму откуда он должен получить идентификатор контейнера корзины… Возможно id блока где-то можно указать, но я не нашёл где… Возможно скрипт сам его получает где-то… Для проверки в строку
const $element = document.querySelector(selector)
вставил, добавленный мною на сайте идентификатор msMiniCart (взятый с minisop2 в надежде что его добавление «чудесным образом» позволит корзине обновляться, но не тут то было), получив
const $element = document.querySelector(#msMiniCart )
и корзина полноценно заработала. Пока остановлюсь на этом… мне этого пока достаточно, что бы продолжить другие работы по сайту, но, возможно, скоро я снова погружусь в интересный процесс доработки кода.
Максим
22 мая 2025, 15:49
0
Выявил такую штуку… Скорее всего, то что корзина на странице не обновляется, связано с тем что нет какой-то обёртки у неё, что бы скрипт мог понять что именно нужно обновлять после изменения содержимого. Сейчас же сниппет и для отображения на всех страницах, и на самой странице корзины общий — выводит только его содержимое. То есть, если добавить на страницу [[!msCart]], то он просто выводит содержимое корзины в виде таблицы или просто текстом напишет что товаров нет, без какой-то обёртки. Посмотрю как выглядит корзина в minishop2, может оттуда можно будет что-то взять
Максим
22 мая 2025, 15:23
0
Оказалось что в updateToken пропустил один this, теперь ошибок нет вообще, но корзина не обновляется, что бы показать увеличение количества товаров, после добавления… Содержимое страницы обновляется только после перезагрузки страницы. Буду искать причину. Но если что знает от чего так, то подскажите, буду признателен.
Максим
22 мая 2025, 15:06
0
Продолжу делится тем как продвигается исправление встречающихся мне ошибок. Надеюсь что двигаюсь в правильном направлении, может это кому-то то же поможет. В файле заменил все встречаемые this на ms3, в методах setToken и updateToken (в файле customer.js). Теперь товар добавляется в корзину, только сама корзина на странице не обновляется. Товар в корзине можно увидеть только после обновления страницы.



Теперь ошибка в консоли вот такая. Что-то не так в функции updateToken, ошибка уже не на какой-то конкретной строке, а выводится из try/catch
Максим
22 мая 2025, 13:19
0
Не знаю верно ли делаю или нет, может кто-то подскажет, пока заменил:
ms3.setToken()
на
ms3.customer.setToken()
Ошибка пропала. На странице, при нажатии на кнопку добавления товара в корзину, появилось всплывающее модальное об отсутствии токена (ранее страница просто перезагружалась). Копаюсь дальше. Сейчас видна в консоли другая ошибка:

AlexFux
22 мая 2025, 10:08
0
Ради интереса спрошу — у заболевших сайтов ядро (папка Core) за пределами публичной части?
И ещё — у этих-же сайтов ссылка на админку вида "/manager", или своя?
Максим
22 мая 2025, 09:54
0
Дополню предыдущий пост. Сама функция, которую мы пытаемся вызвать, находится чуть ниже по коду, в этом же файле — она асинхронная

Семён
22 мая 2025, 09:31
0
Вот как раз-таки по этому врядли это проблема таймвеба, скорее всего старая версия MODX и дыры в компонентах. А-то накинулись на таймвеб все)
Максим
22 мая 2025, 09:24
0
Спасибо что откликнулись.

Пока была надежда что кто-то прям с такой же проблемой столкнулся кто-то, поэтому не прикреплял скриншоты. Сейчас будут подробности. Вот тут указаны эти методы, в самом репозитории модуля — https://github.com/modx-pro/MiniShop3/issues/15

Вот скриншот из консоли браузера


Если что, вот сама страница где тестовый товар. Перейдя в него, можно увидеть кнопку так же добавления товара в корзину.

В каталоге ошибка в консоли вылазит сразу при загрузке страницы, так же и в карточке товара.

Вот скриншот блока кода из файла:
Ivan
22 мая 2025, 00:55
0
Он теперь стоит 2.5к) Благодарность обозначенная автором)
Артур Шевченко
21 мая 2025, 21:07
0
Ну там ещё стэк вызовов есть, номер строки на которой ошибка возникла, а ты прислал только текст и что с ним делать? Перевести? ms3.setToken is not a function — ms3.setToken это не функция.
Максим
21 мая 2025, 17:04
0
У меня сайт на MODx 3.1.1, требуется настроить на нём магазин. Я поставил MiniShop3. Я в курсе что это альфа-версия и могут быть какие-то проблемы в работе, просто не хочется самим писать какой-то примитивный функционал магазина (займусь этим если ничего не решу с ошибками), что бы закрыть все потребности на сайте. Тем более что когда-то давным давно писалось что основной функционал с MiniShop2 перенесён. Может кто-то ставил уже этот модуль и решал возникнувшие проблемы? В частности, у меня проблема с асинхронной функцией ms3.setToken() в файле customer.js (возможно дальше тоже появятся ошибки, но это пока в числе первых), возвращается ошибка «ms3.setToken is not a function». Знает кто-то как её исправить? В поиске не нашёл что бы у кого-то подобная проблема была…

На гите есть упоминание этой функции и пометка что «Метод setToken является асинхронной, но вызывается как синхронный. Возможны ошибки в будущем.». Может кто-то знает как убраь эту ошибку?
Василий Наумкин
21 мая 2025, 14:35
0
Да для всех, какие есть в дистрибутиве — лишнего-то там быть ничего не должно, по идее.

В идеале вообще автоматизировать и качать всё новое бесплатное из репозитория MODX / modstore, распаковывать и забивать в БД:
— название: MODX или дополнение
— версия дистрибутива
— путь к файлу
— sha1 хэш файла