Pathologic
так надо сначала товары достать, а потом по ним категории выстроить
Pathologic
я так всегда делал эти выгрузки
Дмитрий
Почему может в корзине событие изменения количества товара (increase/decrease) при первом клике отрабатывает 2 раза (два запроса уходят), последующие тыки на кнопки работает стабильно? где в таком случае мог накосячить?
Volodymyr
Serguei
Ребята, а может, подскажете? С вот такой проблемой столкнулся:
$dm = new \EvolutionCMS\DocumentManager\Services\DocumentManager();
$data = ['id'=> $db_id, 'location' => $tv, 'pagetitle' => $doc['pagetitle']];
$document = $dm->edit($data, true, true);
Код работает, ресурс с db_idобновляется, тв-параметр location и pagetitle записываются корректно. Но не вызывается плагин, стояший на OnDocFormSave. Причем, в отладчике смотрю - в функции edit() процесс выполнения доходит до EvolutionCMS()->invokeEvent("OnDocFormSave", array(..)), вызов выполняется. Функция завершается корректно, $document возвращается. Но сам плагин, повешенный на OnDocFormSave, не выполняется, хотя пр этом прекрасно работает, если делать сохранение этого же документа из админки.
Почему он может не вызываться?
Evo 3.1.5.
Pathologic
может плагин такой
Pathologic
нужно в файл его перенести и поставить там точку останова
Владимир
Как записать перменную чтобы она была видна вне IF ? 😐
Am
Вдруг Вы говорите про сниппет IF, то насколько мне известно - никак.
В случае, когда говорите про PHP и процедурное программирование, то переменная будет доступна вне if сразу как Вы ее создадите.
Максим
$a = 1 )
Aliaksandr
&then=`@eval: $a=1;`
Aliaksandr
Для любителей погорячее 😎😂😂😂
Pathologic
ну, я думал в базе плагин, типа дебажить неудобно
Serguei
Точка останова срабатывает, если, например, на OnWebPageInit его повесить. Не работает почему-то именно на OnDocFormSave. Хотя InvokeEvent явно вызывается.
Pathologic
значит нужно дебажить и внутри invokeEvent ((:
Aliaksandr
Там скорее всего в этот ивент какая-то фигня передается типа user, а не id :) был же какой-то разговор сто лет назад
Serguei
Так в ивент передается то, что в методе DocumentEdit::edit передается, я там ничего не запиливал. Там вот так:
if ($this->events) {
// invoke OnDocFormSave event
EvolutionCMS()->invokeEvent("OnDocFormSave", array(
"mode" => "upd",
"id" => $this->documentData['id']
));
}
Aliaksandr
Ну так надо и проверять в плагине, доходят ли туда эти данные
Aliaksandr
А что в самом плагине? Как обычно нет желания показывать код, который не работает?)))
Aliaksandr
Может он там ловит в админке какой-нибудь $_GET или $_POST, как тут некоторые любят делать.
Aliaksandr
Вместо вытаскивания актуальных данных из базы по id
Aliaksandr
На OnBefore так юзера и передаёт
Aliaksandr
https://github.com/evolution-cms/evolution/blob/3.x/core/vendor/evolutioncms-services/document-manager/src/Services/Documents/DocumentEdit.php#L118
Aliaksandr
Память не подводит еще )))
Serguei
А что в самом плагине? Как обычно нет желания показывать код, который не работает?)))
В самом плагине идинственная строчка:
require_once(MODX_BASE_PATH."/assets/plugins/sv_dealers/plugin.php");
В файле plugin.php вот такая конструкция:
<?php
require_once("common.php");
bdump($params, "my plugin ");
switch ($modx->event->name)
{
case 'OnDocFormSave':
SVDealers\SaveDealerParams($params);
break;
}
На строчку с bdump на switch стоят брекпоинты, захода нет. В файле common.php только функции.
Pathologic
require_once(MODX_BASE_PATH."/assets/plugins/sv_dealers/plugin.php"); - поменять на require
Serguei
О как. Щас попробуем.
Axenia
Dreamer_0x01 (212.32) увеличил карму Pathologic93 (5282.76)
Serguei
Axenia
Dreamer_0x01 (212.32) увеличил карму webber_12 (4840.54)
Aliaksandr
Очередная иллюстрация для тех, кому надо эффективно решать вопросы вида "не работает код" )))
Serguei
Да еще бы понимать, какой именно код показывать. Не выкладывать же сразу всё :)
Serguei
Зато я узнал в подробностях, как работает InvokeEvent, отладив весь стек функций по шагам :) Но лохонулся на самой конструкции php, как-то не подумал, что require_once кроме того, что код файла один раз только включит, так и выполнит его тоже один раз.
Pathologic
для классов и функций нужно require_once, для всего остального require
Pathologic
мой отличный модуль пытались очернить по этому поводу 🙃
Serguei
Полезные грабли оказались, теперь про это и я буду знать :)
Serguei
Pathologic
не помню уже кто, Дима вроде 😜
Aliaksandr
Он наверно поиск не индексировал )))
Pathologic
ага
Anonymous
Господа, про грабли можно дописывать сюда. Кстати, недавно тоже был замечательный сюжет про наименования
https://modx.evo.im/blog/docs/6312.html
Alexander
Axenia
Grinyaha (1685.7) увеличил карму paic (969.86)
Vladimir
Axenia
vlapod (0) увеличил карму paic (970.86)
Алексей
кто-то подключал liqpay к commerce ? что-то в доках смотрел не нашел примера оплаты, только при получении есть
EVO bot Лёшка
Andrey
Алексей
ааа,сорян, не там смотрел, по привычке https://docs.evo.im/ тут смотрю
Михаил
вот а был бы маркетплейс, все бы знали, где смотреть дополнения :)
Andrey
В гугле...
Дмитрий
Вылазиет в commerce при попытке вызвать loadOrderByHash в контроллере.
Михаил
Дмитрий
Есть такое.. и вопрос еще есть. Есть возможность получить продукыт заказа через API commerce или руками в БД доставать?
Pathologic
есть
Михаил
Дмитрий
Или getCart получается последнюю корзину по заказу
Pathologic
$processor = $modx->commerce->loadProcessor();
$order = $processor->loadOrder($id);
if (!empty($order['hash']) && $order['hash'] == $hash) {
$processor->getCart();
...
}
Дмитрий
Есть ли возможность "в коробке" commerce инициализировать кнопки добавления товара в корзину. Смысл: есть модальное окно карточки товара, в него загружается содержимое через ajax, соответственно добавление в корзину не работает после открытие модалки.
A
Есть клиент, нужен магазин под ключ, у нас нету доступного ресурса, может кому-то получится.
@v1ka_sm телеграмм
Алексей
Axenia
Lector1982 (55.78) увеличил карму Kasick (82.66)
Yevhen
а как поменять порядок вывода Способов оплат и доставок в Commerce?
Alexander
Alexander
Alexander
Дмитрий
Просто получится 2 скрипта на странице
Михаил
Михаил
Yevhen
спасибо... буду искать причину
Alexander
Yevhen