Наумов Алексей

Наумов Алексей

С нами с 31 марта 2013; Место в рейтинге пользователей: #13
Наумов Алексей
22 июля 2021, 10:39
0
Наверное, только вариант с хранением изменившихся цен.

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

Подчищает пусть каким-нибудь хитрым sql запросом.., чтобы не объекты xpdo (мы же про modx говорим?))) дергать, а попроще как-нибудь. Типа выбрать 2 последние записи с одним id товара, если цена одинаковая — то последнюю из этих записей удалить, как не нужную, а если цены разные — предпоследнюю пометить как «проверенную» и больше ее не проверять.

Или например разнести все это по 2м таблицам: одна временная, где все 40 тыс записей, а во вторую уже попадают только действительно изменившиеся цены.
Наумов Алексей
21 июля 2021, 11:21
0
В качестве element указан сниппет migxLoopCollection, он умеет работать с Fenom то вообще?..
Наумов Алексей
21 июля 2021, 10:47
0
В чанке loft-site2:
1. {$lotnumber} — верная запись
2. {$_modx->resource.lotnumber} — конечно же нет, $_modx->resource это ТЕКУЩИЙ РЕСУРС
3. [[+lotnumber]] — верная запись
4. {$_modx->getPlaceholder('lotnumber')} если в плейсхолдер никто ничего не устанавливал — то он пуст.

п.1. возможно не работает, т.к. это migx поле, там наверняка есть скобки { } и парсер Fenom на них спотыкается… может сразу в массив это преобразовать?
Вот так выводит что-нибудь?
{$lotnumber | fromJSON | print}
Наумов Алексей
21 июля 2021, 09:39
+1
мейби влияет разделитель значений у mFilter2, он по-умолчанию — запятая, а она у вас встречается в значении свойств, что и может привести к косякам.
Наумов Алексей
05 июля 2021, 17:11
0
Здесь нужно понимать, как работает парсер MODX. Это именно ПАРСЕР, а не шаблонизатор.
Он сначала ВСЕ парсит, а потом выполняет условия. Т.е. TicketComments вызывается всегда, каким бы ни был parent в вашем If.
Либо в отдельный шаблон убирайте, либо переводите сайт на шаблонизатор Fenom, который уже условия обрабатывать более привычно для человеческого восприятия.
Наумов Алексей
05 июля 2021, 15:13
0
Здесь
Часть кода можно убрать отключив редактор (настройка tickets.enable_editor).
Подключение основного скрипта без правки исходников не сделать.
Наумов Алексей
02 июля 2021, 14:18
0
Обновится не выйдет 100%.
Поэтому делаете новый сайт, а старые данные импортируете через базу, csv файлы или как умеете.
Наумов Алексей
25 июня 2021, 09:15
+2
Цена товара в корзине сохраняется, поэтому да, если поменять ее на сайте — в корзине будет старая.

Думаем, как поправить…
Нужно при каждом получении корзины (это плагин на событие msOnGetStatusCart, доступен объект $cart) пробегаться по корзине, получать товары и актуализировать цену.
Примеров с тем, как в корзине что-то менять — на сайте полно)
Наумов Алексей
10 июня 2021, 09:10
0
Вы же запускаете сниппет в контексте mgr, верно?
Там нет $modx->resource, здесь и возникает ошибка…
Наумов Алексей
10 июня 2021, 08:59
0
Добрый день.
Я так понимаю, у вас там некий файл с кодом, где нужны id товаров?

Сделайте запрос в бд напрямую, не запускайте сниппет.
Вот вырезка кода, только поправьте ее, я просто скопировал кусок:
// addPackage для загрузки модели
$modx->addPackage('msproductkits', MODX_CORE_PATH . 'components/msproductkits/model/');

// Build query
$c = $modx->newQuery('msProductKitItem');
$c->select($modx->getSelectColumns('msProductKitItem', 'msProductKitItem'));
$c->where(['active' => 1, $mode => $resource]);
$kitItems = $modx->getIterator('msProductKitItem', $c);
// далее foreach
Наумов Алексей
04 июня 2021, 15:29
+1
Там разве не вот так?
modx.user.id:ismember=`MyGroup`
Наумов Алексей
03 июня 2021, 13:16
0
Да, поискал побольше информации… увидел это)
Обидно, у меня vps свежая, успел на нее уже штук 5 сайтов поставить, и конечно же там mysql 8 свежий поставил… получается опять с vps заниматься…
Наумов Алексей
03 июня 2021, 09:38
+1
Приветствую! Такая же проблема… удалось найти причину и исправить ситуацию?
Наумов Алексей
03 июня 2021, 08:29
0
А вот вижу value задается… может в нем проблема то?

А еще сталкивался с тем, что у combo нужно задавать hiddeName
Наумов Алексей
26 мая 2021, 14:27
+1
Маленький совет, лучше сделать поддомен video.*.ru, чтобы потом удобнее если что мигрировать на другой хостинг.
Да и с поддоменом вы можете видео хранить на хостинге, где подешевле место и трафик.
Наумов Алексей
26 мая 2021, 11:06
0
Открываем Console,
пишем небольшой код для чтения csv файла (ну с этим то в интернете нет проблем)
далее цикл по товарам и запускаем:
$response = $modx->runProcessor('gallery/upload', array(
        'file' => $file, // Путь к файлу от корня сервера
        'id' => $product_id // id товара
    ),
    array('processors_path' => MODX_CORE_PATH . 'components/minishop2/processors/mgr/')
);

if ($response->isError()) {
    echo 'ОШИБКА: '.implode(", ", $response->getAllErrors());
    echo '<br />';
}
если товаров много — то в стандартные 30 секунд скрипт не уложится…
Наумов Алексей
21 мая 2021, 08:56
+1
В примере из статьи это таблица modx_electrica_items

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

Стоит посмотреть в логах modx, может быть там ошибка написана.
Наумов Алексей
20 мая 2021, 11:03
1
0
Рациональность в этом всем есть… да…
У меня не было такой задачи… я вообще в основном все сделал только для того, чтобы в админке этим было удобно управлять.

Советую посмотреть в сторону msSetInCart, может он даст нужный функционал?
Наумов Алексей
17 мая 2021, 08:33
0
Один из простых вариантов — это создать пользователя Гость (Покупатель) и заказы плагином вешать на него. Но у данного лица есть поле email, а у заказа нет такого поля) вот тут будут проблемы, если вам при оформлении заказа нужна почта.
Наумов Алексей
12 мая 2021, 08:17
0
Так не выйдет…
нужно сделать свой тип tv поля.

Посмотри, к примеру, исходники image plus: github.com/Jako/ImagePlus
обрати внимание на папку /core/components/imageplus/elements/tv/, там внутри шаблоны…