Лёша

Лёша

С нами с 09 марта 2022; Место в рейтинге пользователей: #107

Идея: выносить весь код из сниппетов, плагинов, контроллеров в zoomx в классы

Подумал тут, что сниппеты — довольно костыльная штука. А ещё код может потребоваться переиспользовать, как в плагинах, так и в сниппетах. Выносить в сниппет функцию и вызывать через runSnippet? Как по мне, ещё больший костыль. В общем такая идея: в папке elements/classes хранить различные классы, нужные для функционала сайта. Создать один сниппет (допустим run), передавать ему какой метод из какого класса вызвать и параметры.

Я не работал с фреймворками и другими cms, не знаю, как там устроено. Напишите, как вам идея, если не очень, предложите своё решение) А ещё нормально ли хранить код в контроллерах в zoomx? В разных контроллерах же может понадобиться один и тот же код, и его бы куда-то вынести.
Лёша
20 сентября 2022, 19:49
modx.pro
614
0

Решаем проблему с письмами в miniShop с ZoomX

При использовании ZoomX при заказе возникает ошибка, ведь чанки писем написаны на Fenom, а у него синтаксис немного отличается от Smarty. Переписал чанки писем на Smarty. Но в таком случае при изменении статуса заказа из админки в письме приходит код шаблона, ибо парсер в mgr не срабатывает.
Лёша
16 июля 2022, 08:44
modx.pro
465
0

Доп. товары в minishop

Здравствуйте, подскажите, как лучше сделать доп. товары? Допустим, есть кондиционер, к нему можно приобрести гарантию и установку. Через migx-таблицу сделать? Или связи товаров? Сделал бы дочерними ресурсами, но их не будет видно в админке. Платные компоненты не рассматриваю, но может подскажете, как там сделано примерно)
Лёша
05 июля 2022, 20:54
modx.pro
122
0

Не парсится чанк письма в miniShop при использовании ZoomX

Здравствуйте, при использовании ZoomX вместо письма при смене статуса заказа приходит код чанка. Не работает ни Smarty, ни Fenom.
Раньше работал такой плагин:
<?php
switch ($modx->event->name) {
    case 'msOnChangeOrderStatus':
        $corePath = $modx->getOption('zoomx_core_path', null, MODX_CORE_PATH . 'components/zoomx/');
        $modx->setOption('pdoTools.class', 'pdoToolsZoomx');
        $modx->setOption('pdotools_class_path', $corePath . 'pdotools/');
        $modx->setOption('pdoFetch.class', 'pdoFetchZoomx');
        $modx->setOption('pdofetch_class_path', $corePath . 'pdotools/');
        include $corePath . 'pdotools/pdotoolsadapter.php';
        break;
}
Сейчас с ним при смене статуса происходит ошибка, статус не меняется. Видимо после обновления ZoomX перестало работать.
Ещё вместо темы письма приходит [[%ms2_email_subject_new_user]].
При оформлении заказа всё нормально, срабатывает Smarty. Fenom на сайте выключен.
Лёша
13 мая 2022, 03:22
modx.pro
181
0

Числовые значения в параметре optionFilters в msProducts

Здравствуйте, как можно сделать, чтобы корректно работал фильтр по числовым полям в miniShop?
[optionFilters] => {"kcal:<=":69,"kcal:!=":""}
выводит товар, у которого значение kcal = 400. Использовать join и where? optionFilters тут не подойдёт?
Лёша
30 апреля 2022, 09:49
modx.pro
138
0

Ошибка при изменении поля в форме заказа на minishop2-3.0.0-pl

Здравствуйте, при post запросе к assets/components/minishop2/action.php сервер возвращает ошибку 500. Это происходит при изменении поля в форме заказа.

Ответ от сервера: {«success»:false,«data»:[],«errors»:{«code»:500,«title»:«Error 500: Internal Server Error»,«message»:«Call to a member function set() on null»},«meta»:{«total_time»:«0.1038 s»,«query_time»:«0.0012 s»,«php_time»:«0.1026 s»,«queries»:3,«source»:«cache»,«memory»:«8 192 KB»}}
Ответ возвращает ZoomX, но проблема не в нём, так как на стабильной версии miniShop всё работает.

Подскажите, в чём может быть дело?
Лёша
26 апреля 2022, 21:26
modx.pro
457
0

Изменение количества товара в корзине после добавления с помощью ZoomX и Alpine.js

На многих интернет-магазинах при добавлении товара в корзину появляются кнопки +−, меняющие количество товара. При попытке сделать подобное, используя api miniShop2, пришлось городить костыли, плюс работало это с багами. Поэтому для этой цели пришлось запилить собственное api.

На бэкенде мы создадим метод, который добавляет товар, если его нет в корзине, изменяет его количество, удаляет, если передано количество 0. На фронтенде создадим метод для его вызова.
Лёша
24 апреля 2022, 19:51
modx.pro
2
478
+8

Долго создаются товары через api

Делаю выгрузку товаров. Товары создаются около секунды, что много, учитывая, что нужно выгрузить их более 7000. В чём может быть причина? Категории создаются гораздо быстрее, способ примерно такой же.
Лёша
26 марта 2022, 15:42
modx.pro
203
+1

Разница между newQuery, command('update'), set и getOblect, set

Наткнулся на такую конструкцию:
$c = $modx->newQuery('Objekt');
$c->command('update');
$c->set(array(
        'name'  => $name
));
$c->where(array(
        'id'    => $id,    
));
$c->prepare();
$c->stmt->execute();
Раньше всегда использовал
$obj = $modx->getObject('Object');
$obj->set('prop', 'value');
$obj->save();
Подскажите, в чём разница? Предполагаю, что в скорости. Можно ли первым способом создавать ресурсы?
Лёша
26 марта 2022, 09:56
modx.pro
252
0

Начались проблемы с онлайн-оплатой от Сбера

Недавно на нескольких сайтах начались проблемы с онлайн-оплатой Сбера: не приходит ответ от сервера.
Используется самописное решение, но оно работало на многих сайтов, раньше проблем не было.
Проблема возникает не всегда, только у некоторых пользователей, какой-то закономерности пока выяснить не удалось. У меня и других разработчиков в компании всё работает.
Пользователь прислал скриншот, на нём видно, что используется vpn. Попробовал сделать заказ с включенным vpn (Browsec) — оплата не сработала. Хотя я не понимаю, причём тут vpn — запрос к серверу Сбера же с хостинга идёт.

Не начались ли на ваших сайтах проблемы с оплатой? Может ли это быть связано с использованием vpn?
Лёша
22 марта 2022, 01:46
modx.pro
139
0