Всего 125 992 комментария

Максим
22 сентября 2021, 13:30
1
+2
Недавно ковырялся в скриптах минишопа, заметил, что нет callback-функции для miniShop2.Cart.status(). А ведь могло бы пригодиться (например, с той же мини-корзиной какие-то действия производить, добавлять классы или что-то еще).
И вообще, в чем преимущества этих callback? Почему бы не сделать через события? Например, написать (можно на чистом JS):
$(document).trigger('beforeAddToCart', options)
А там кому надо, тот напишет
$(document).on('beforeAddToCart', function(event, options){});
Как минимум короче код и привычнее.
Андрей
22 сентября 2021, 10:52
0
fenom почемуто на сайте не работает, при включении dom обнуляется, так что нужно обойтись без фенома)
Это проще поправить — Проблемы и решения, как правило мешает какая-нибудь метрика или скрипт на странице.
Олег Захаров
22 сентября 2021, 04:01
1
0
Еще момент — иногда возникают ошибки расчета стоимости когда например пользователь ввел один адрес, стоимость доставки посчиталась и запомнилась в форме. Затем пользователь меняет адрес доставки, но стоимость уже остается посчитанной для предыдущего адреса. Т.е. получается не пересчитывается доставка. Так можно сделать обман пользователем чтобы доставка посчиталась по минимуму а затем уже выбирается реальный адрес, а стоимость может остаться старой.
Или же пользователь ввел заново название города, а улицу не указал (есть адреса типа железнодорожная станция и она не сохраняется как улица), или она не подставилась, и доставка точно не посчиталась/ не обновилась. У меня происходит так что если указать просто Новосибирск — то выводится Новосибирск, и тогда считается доставка в центр или даже оставляет старый маршрут (карта не перерисовывается) и стоимость доставки не меняется. Для указания просто города наверное вообще надо делать чтобы доставка не считалась правильно указанной и посчитанной.
Вижу решение проблемы чтобы через js проверять чтобы улица (поле street, делаю у себя скрытым, заполняется после заполнения через поле mscdistance_delivery_to_point) была заполнена.
Но были также ошибки когда не считается переменная mscdistance_delivery_distance. И доставка не считается. Как быть в этом случае? Приходится думать в сторону написания JS кода для проверки наличия заполнения mscdistance_delivery_distance (ну и mscdistance_delivery_to_point соответственно).
Олег Захаров
22 сентября 2021, 01:45
1
0
Еще хотелось бы настраивать отображение карты, задавать возможность отображения маркера, масштаба показа в начальный момент экрана загрузки карты.
Еще очень хотелось бы чтобы пользователь мог выбрать точку на карте (кликнуть по зданию) и указать что-то типа доставить сюда.

Ведь это было удобно для пользователя.
Плюс еще есть потребность чтобы если пользователь авторизован, адрес доставки можно хранить в настройках пользователя и при оформлении заказа у авторизованного пользователя была возможность выбирать адрес доставки по умолчанию — и тогда при оформлении заказа чтобы доставка рассчитывалась для этого адреса, выбранного по умолчанию (или даже хранить несколько адресов у пользователей и была возможность выбирать в момент оформления заказа.)
И еще вопрос за что отвечает mscDistance.product.cost (не уверен входит ли он в стандартную поставку компонента — на исправляемом сайте клиента компонент уже стоял, возможно этот сниппет был создан другим программистом)? Как его использовать? Посмотрел код, можно разобраться. Но было бы правильно указать его описание на странице компонента — сейчас там о нем нет описания.
Олег Захаров
22 сентября 2021, 01:26
1
0
Вопрос — у последних версий нет системных настроек?
Например на mscDistance
есть указание возможности задания настроек.
Например не нашел в настройках способа доставки (задаваемого в настройках Minishop) возможность ограничить:
Город доставки — указать город в пределах которого осуществляется доставка товаров
Регион доставки — указать регион в пределах которого осуществляется доставка товаров
Вот хочу я например ограничить доставку одним городом, чтобы не выводил адреса из других городов. Сейчас можно указать адрес доставки другие города что мешает.
Сейчас в системных настройках по mscdistance пусто. Пробовал переустановить, все равно пусто.
Или можно указанные настройки вручную создать. Как они будут работать. Почему нельзя было вывести в системные настройки? Или это баг?
Evgeny
21 сентября 2021, 22:58
0
подскажите, пожалуйста, как взять параметр из likes_fake? fenom почемуто на сайте не работает, при включении dom обнуляется, так что нужно обойтись без фенома)
вывожу так:
[[!xLike?
&parent=`[[*id]]`
&class=`modResource`
&list=`default`
&likes=`$_modx->resource['likes']`
&dislikes=`$_modx->resource['dislikes']`
&rating=`$_modx->resource['rating']`
]]
Дима Сайт old см. профиль
21 сентября 2021, 21:48
0
Там же пара команд, если контейнер готовый. Главное взяться ;-)
Илья
21 сентября 2021, 21:37
0
Кстати с докером мысля интересная, надо подтянуть бы данное направление. Но что то мне подсказывает что не только лишь все смогут его поднять. Про нишевость я знаю, но лучше уж так выкладывать чем просто в тихую хранить на диске изредка используя.
Спасибо.
Дима Сайт old см. профиль
21 сентября 2021, 21:24
+1
@Илья привет, не обращай внимания что активности вокруг продукта. Продукт нишевый, и ты его просто вывел «в свет» в довольно смутное время плюс со слегка спорным неймингом, не бросай раз получается!

Вот SEO-шники скоро заметят обновление и пойдут «дропы» поднимать пачками через эту штуку. Я не смог сходу вспомнить название фильма где массово воскрешали мертвецов, но их куча и все они сразу промелькнули перед глазами :)

Конечно для 21 года было бы круто docker-контейнер для бекенд части приложения собрать, чтобы этим можно было пользоваться не нагружая твой сервер, но это уже больше сисадминское кунг-фу чем программистское)

Успехов!
Михаил
21 сентября 2021, 20:29
0
Супер! Вот именно это и нужно! Спасибо!
Михаил
21 сентября 2021, 20:26
0
да, он выводится внутри getImageList. Первый ответ в этой ветке как раз о getImageList. На него я и задавал вопрос.
Andrey
21 сентября 2021, 20:24
1
+2
В этом случае и модификатора хватит:
[[+num:incr=`[[+num2]]`]]
incr +, decr -, div /, mpy *
Александр Мельник
21 сентября 2021, 20:22
0
Каким образом у вас в [[+num]] оказалось число?
Вы наверное не написали о том, что вызываете этот самописный сниппет уже внутри getImageList? В тексте вашего вопроса об этом ни слова, а поверьте, далеко не все пользуются getImageList для работы с migx, вот я вас и не понял.
Михаил
21 сентября 2021, 20:10
0
Решило. Сниппет сложил между собой два migx поля, нужно было именно это.
Александр Мельник
21 сентября 2021, 20:06
0
это сниппет для сложения чисел, никакого отношения к migx он не имеет, но если это решило вашу проблему то и хорошо.
Михаил
21 сентября 2021, 19:52
0
Нашел решение, оказывается можно
forums.modx.com/thread/88146/migx---how-to-sum-values-from-migx-field-into-a-placeholder-tv#dis-post-485238
Для сложения — нужно создать сниппет с названием, например, summerize
<?php
$values = explode(',',$modx->getOption('values',$scriptProperties,''));
$sum = 0;
foreach ($values as $value){
    $sum += $value;
}
return $sum;
затем вывод в чанке
[[summarize? &values=`[[+num]],[[+num2]]`]]
Александр Мельник
21 сентября 2021, 19:42
0
migx это json строка, хранящаяся в базе данных.
как правило, migx используют если нужно чтобы в одном TV хранилось не примитивное значение, а набор данных.
{
«name»: «Alexander»,
«age»: 48
}
Как вы понимаете нельзя сложить, вычесть или умножить двух меня)
Математические действия можно производить только над примитивами (числа, строки и так далее).
Уже поэтому ваш вопрос не совсем корректен.
Возможно у вас в migx среди прочих данных есть и числа и вы хотите сложить их. Тогда советую вам почитать ilyaut.ru/xpdo/ о том, как в сниппете можно получить TV поле. вардапните его, посмотрите что в нем лежит и как храниться. Примените функции json_decode и переведите в массив. Проведите математические операции с элементами массива. Переведите назад в json и сохраните в TV.
Михаил
21 сентября 2021, 18:59
0
Спасибо.
А как сложить два различных поля migx. Например, [[+num]] и [[+num2]]
И существует ли возможность других математических действий (вычитание, умножение, деление)?
Andrew
21 сентября 2021, 14:26
0
Хм, при обновлении снял галочку для чанков и на них ориентировался… точно глупый)
Все ок, получилось, но есть проблема описанная Дмитрий Танцирев 11 мая 2021, 17:00
Murashkin
21 сентября 2021, 14:24
0
Спасибо, сработало!