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

Boris Akimenko
22 февраля 2021, 12:45
+2
@Василий Наумкин, спасибо тебе за развитие MODX, за твой без преувеличения огромный вклад в его развитие в России, и за наше сотрудничество тебе большое спасибо!
Александр
22 февраля 2021, 12:17
0
В техподдержке ответили: Нужно написать свой плагин для события msmcOnGetPrice в котором делать округление в нужную сторону. Будем пробовать
Александр
21 февраля 2021, 16:43
0
Здравствуйте. Написали в техподдржку компонента ещё в пятницу, до сих пор ответа нет. Продублирую здесь, может кто то сталкивался и подскажет:
Добрый день. Подскажите пожалуйста: Задаем цену товара 170$ и надо ее выводить именно так, однако видимо при пересчете получается 169.99 это при точности 2. Если ставим точность ноль, то выводит 169$. Получается округляет в меньшую сторону. Как то можно сделать чтобы округляло в большую сторону? Или же цена, которая задана (привязана к товару) выводилась именно такой, как задана? В данном случае 170$

На странице товара выводим так:

{'!msMultiCurrencyPrice' | snippet: [
'price' => $_pls['price'],
]}
{$_modx->getPlaceholder('msmc.symbol_right')}


Далее обнаружил что в динамической корзине товар с ценой 4.74$ например (это пересчет по курсу от цены в рублях), пересчитывается, вернее показывает, при количестве 4 штук вот так:
4 x 4 = 18
Получается что пересчет идет: 4.74 умножает на 4, потом округляет 18.96 до 18. Но показывает округленную цену товара, равную 4. И получается неправильная арифметика.
Возможно кто то знает решение.
Спасибо.
Denis_A
21 февраля 2021, 12:40
+1
У меня эта проблема была связана с переполнением места на хостинге, я уже думал что уже происки чьи или вирусятина. Но помогло просто почистить Бэкап!
Сергей Шлоков
21 февраля 2021, 07:06
0
Скорее всего разговор про комменты. Никуда они перетекать не будут. Кроме того, проблема только с полями varchar, для которых созданы индексы. Т.е. можно даже не все поля varchar таблицы поправить, а только индексируемые.
Дмитрий Белов
21 февраля 2021, 00:45
0
Решил оставить вариант через промисы:
/**
 * Добавить список товаров в корзину
 * @param products список товаров в формате {id: 1, count: 2, options: []}
 */
function addToCartAll(products) {
    var addToCartOne = function(id, count, options) {
        return function() {
            return new Promise(function(resolve, reject) {
                $.post(document.location.href, {
                    ms2_action: 'cart/add', 
                    id: id, 
                    count: count, 
                    options: options
                }, function(response) {
                    console.log(JSON.parse(response));
                    resolve();
                });
            });
        }
    }
    var promise = Promise.resolve();
    for (var product of products) {
        promise = promise.then(addToCartOne(product.id, product.count, product.options));
    }
    promise.then(function() {
        console.log("Все запросы выполнены последовательно");
    });
}
Fullstack
20 февраля 2021, 22:21
0
А, и для поддержки пробелов надо еще второе упоминание $_GET['tag'] заменить на
str_replace('%20', ' ', $_GET['tag'])

Получится вот такой сниппет:

if ($_GET['tag']) {
	$tag = preg_replace('/[^A-Za-zА-Яа-яЁё0-9_\- ]+/ui', '', str_replace('%20', ' ', $_GET['tag']));
    //$tag = 'tags==%' . $tag . '%';
}

return $tag;

urldecode заранее не рекомендую.
weranda
20 февраля 2021, 22:11
0
Смайлики ведь вставляются в какую-то одну таблицу.
А я не знаю логику работы MODX с БД. Может быть так, что данные из одного поля при какой-то операции будут использоваться в другом поле другой таблицы…
Fullstack
20 февраля 2021, 21:54
0
Для того, чтобы она была, надо убрать
&tvFilters=`[[!getTag]]`
и сделать
&where=`["CONCAT(',', TVtags.value, ',') LIKE '%,[[!getTag]],%'"]`
и добавить TV-поле с тегами (в данном примере tags) также в &includeTVs.

А в моем обезопашенном сниппете getTag закомментировать эту строчку:
// $tag = 'tags==%' . $tag . '%';
Сергей Шлоков
20 февраля 2021, 21:45
0
Почему 191, а не 249 или какое другое число?
Гугл сломался?

При попытке смены некоторых таблиц через phpMyAdmim появляется ошибка
А зачем переводить несколько? Смайлики ведь вставляются в какую-то одну таблицу. Вот в ней и нужно поменять все varchar(255) на varchar(191).
Fullstack
20 февраля 2021, 21:34
0
И привет, инъекция :)
Лучше хотя бы так
<?php

if ($_GET['tag']) {
	$tag = preg_replace('/[^A-Za-zА-Яа-яЁё0-9_\- ]+/ui', '', $_GET['tag']);
    $tag = 'tags==%' . $tag . '%';
}

return $tag;
А так тут нет проверки на точность тега (надо учитывать точные значения между запятыми у тегов)
imnot
20 февраля 2021, 16:16
0
Вопросы по п.3:

1. Как сделать дополнительные поля из п.3 обязательными для заполнения на стадии оформления заказа?

2. При добавления данного плагина в MiniShop2 в консоль массово сыпятся ошибки ((ERROR @ /***/core/model/modx/modx.class.php: ****) [OnMODXInit]), но доп. поля работают и в заказе и админ. панели.
Алексей Суслов
20 февраля 2021, 13:45
0
Не знаю про первую версию, а в msPromoCode2 точно есть и я часто этим пользуюсь:

Николай Савин
20 февраля 2021, 11:41
+1
Раздел работа к вашим услугам.
Также есть наш канал в телеграме — лучше туда t.me/ru_modx_work
Николай Савин
20 февраля 2021, 11:39
0
Очень похоже что у вас проблема в одном из плагинов работающих на событие сохранение документа. Попробуйте по очереди отключать плагины и пробовать сохранять документ.
В первую очередь попробуйте плагин от BitrixCRM — не зря он ошибки в лог кидает.
Дмитрий
20 февраля 2021, 11:00
0
Добрый день! Подскажите, возможно ли в первой или второй версии использовать данный модуль msPromoCode, чтобы промокод (скидка) не распространялся на товары у которых уже установлена скида в cms mishope (заполнено поле старая цена)?
Игорь
20 февраля 2021, 09:59
0
Ну тогда, наверное, проще компонент синхронизации поправить, что бы он по опции сверялся…
Наумов Алексей
20 февраля 2021, 09:56
0
Чисто теоретически это можно бы сделать, просто не реализовано.

См:
1. Сниппет msCart
Обрабатываются из заказа только опции, кол-во, вес, стоимость и скидка. Нужно добавить сюда артикул.
2. в getOrder
примерно тоже самое.

ну и подозреваю, что нужно посмотреть что будет в админке творится (скорее всего в процессорах).

Я почему пишу — пытался почти тоже самое сделать, мне только название товара нужно было подменять.
Игорь
20 февраля 2021, 09:45
0
Засуньте его в options.
Дело в том, что я хотел бы дальше использовать этот «подмененный» артикул для синхронизации с другой программой (компонент синхронизации настроен на сверку именно по родному артикулу minishop).
Это невозможно получается?