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

Александр Туниеков
25 мая 2025, 12:56
0
Это очень странно, что такой выдающийся разработчик как ты не смог понять где происходит инициализация карты, учитывая, что в консоли справа написано в каком файле ошибка.
Ну вот и покритиковать нельзя :-).
У нас api-maps.yandex.ru/v3/?apikey=*** заработало когда поставили ограничение по домену.
Александр Туниеков
25 мая 2025, 12:52
0
С msDeliveryProps ошибка
Fatal error: Uncaught Error: Call to a member function getOption() on null in 
/home/s/semweb/orliman.shop/public_html/core/components/minishop2/model/minishop2/msdeliveryhandler.class.php:3 
Stack trace: #0 /home/s/semweb/orliman.shop/public_html/core/components/msdeliveryprops/ConfigurableDeliveryHandler.class.php(12): 
require_once() #1 /home/s/semweb/orliman.shop/public_html/core/cache/includes/elements/modplugin/46.include.cache.php(9): require_once('/home/s/semweb/...') 
#2 /home/s/semweb/orliman.shop/public_html/core/model/modx/modscript.class.php(76): include('/home/s/semweb/...') #3 
/home/s/semweb/orliman.shop/public_html/core/model/modx/modx.class.php(1674): modScript->process(NULL) #4 
/home/s/semweb/orliman.shop/public_html/core/model/modx/modmanagercontroller.class.php(153): 
modX->invokeEvent('OnManagerPageBe...', Array) #5 /home/s/semweb/orliman.shop/public_html/core/model/modx/modmanagerresponse.class.php(79): 
modManagerController->render() #6 /home/s/semweb/orliman.shop/public_html/core/model/modx/modmanagerrequest.class.php(187): 
modManagerResponse->outputContent(Array) #7 /home/s/semweb/orliman.shop/public_html/core/model/modx/modmanagerrequest.class.php(135): 
modManagerRequest->prepareResponse() #8 /home/s/semweb/orliman.shop/public_html/manager/index.php(63): 
modManagerRequest->handleRequest() #9 {main} thrown in /home/s/semweb/orliman.shop/public_html/core/components/minishop2/model/minishop2/msdeliveryhandler.class.php on line 3
Я в файле core\components\minishop2\model\minishop2\msdeliveryhandler.class.php
Закоментировал $this->modx->getOption('log_deprecated')
<?php

// if (!empty($this->modx->getOption('log_deprecated'))) {
    // $this->modx->log(
        // xPDO::LOG_LEVEL_ERROR,
        // 'Deprecated: use handlers from catalog core/components/minishop2/handlers/'
    // );
// }
require_once dirname(__FILE__, 3) . '/handlers/msdeliveryhandler.class.php';
И заработало. Не понятно Эта ошибка из-за наших особенностей или что-то неправильно в msdeliveryhandler. По идее файл же не класс и $this-> вообще не должен присутствовать О_О.
Dima
24 мая 2025, 15:26
0
Учитывает ли модуль кол-во товаров, вес товара и габариты?
Можно ли выбрать разные способы, например экспресс или обыная?
Также может в демо не обновлена версия, но у меня работает пока немного странно: если я 1 раз выбрал ПВЗ, то потом я не могу уже никак выбрать другой, даже после обновления страницы. Ну и не всегда удобно выбрать без карты (понятно, что карта это доп нагрузка, но можно и в модалку положить — только мнение).
Артур Шевченко
23 мая 2025, 09:41
0
В кабинете яндекса написано такое:
Написано, ага, только я когда добавил ограничения по домену ключ перестал работать.
Артур Шевченко
23 мая 2025, 09:40
0
В описании системной настройки ms_cdek2_yandex_map_api_key написано какой API и где
Артур Шевченко
23 мая 2025, 09:38
0
Код тарифа теперь зачем-то в настройке описания тарифа.
Установи msDeliveryProps и прописывай там

Понять, где должна происходить инициализации ymaps3, не получилось.
Это очень странно, что такой выдающийся разработчик как ты не смог понять где происходит инициализация карты, учитывая, что в консоли справа написано в каком файле ошибка.
Артур Шевченко
23 мая 2025, 09:35
0
Я вроде по умолчанию отключил вывод логов, поэтому разрастаться не должно. А если ты включил и забыл отключить, то разрастаться будет где угодно.
Алексей Суслов
23 мая 2025, 05:07
0
В кабинете яндекса написано такое:
Если вы используете Java Script API версии 3.0, необходимо настроить ограничения для API-ключа, чтобы API работали корректно. В предыдущих версиях это не обязательно, но рекомендуется сделать, чтобы защитить ключ.

Попробуйте прописать ограничения, может в этом причина.
yandex.ru/maps-api/docs/js-api/limit.html
Александр Туниеков
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", или своя?