12 января 2020, 19:25 Да, но с учетом того, что на момент решения проблемы клиент сам толком не знал, что ему надо — сделал так: 1. оформил метод оплаты картой (по сути копия самовывоза, но зовется так, как мне надо). 2. Сделал страничку для админа (с соотв. правами на просмотр и т.д.). Там админ видит весь список заказов и делает с ними несколько действий, которые тогда были заявлены (уже не помню точно). Но одним из них было действие «отправить счет клиенту». Далее запускался скрипт который оформлял заказ на оплату в сбере через стандартный API сбера через связку Номер заказа на сайте — номер заказа в платежном шлюзе (в базе сайта id заказа в шлюзе сбера сохранялся в спецполе). По факту клиенту высылалась ссылка на оплату в платежном шлюзе (время существования ссылки было выставлено на бесконечное время). Клиент оплачивал заказ и редиректился на страницу успешной оплаты заказа, где по id заказа из GET (это шлюзовский id) менялся статус заказа на сайте. Вопросы / Отложенная оплата заказа 4 0
22 августа 2019, 12:07 Как обычно: сам задал вопрос — сам отвечаю. 1. Добавил поля id_1C и id_parent_1C в modx_site_content 2. В плагине на OnMODXInit (у меня там куча полей для расширения разных классов) написал $modx->map['modResource']['fields']['id_1C'] = ''; $modx->map['modResource']['fields']['id_parent_1C'] = ''; $modx->map['modResource']['fieldMeta']['id_1C'] = array( 'dbtype' => 'varchar', 'precision' => 50, 'phptype' => 'string', 'null' => false, 'default' => '' ); $modx->map['modResource']['fieldMeta']['id_parent_1C'] = array( 'dbtype' => 'varchar', 'precision' => 50, 'phptype' => 'string', 'null' => false, 'default' => '' );3. В плагине на OnDocFormSave и onDocFormPrerender switch ($modx->event->name) { case 'OnDocFormPrerender': $id_1C = ''; $id_parent_1C = ''; if (isset($scriptProperties['resource'])) { if (is_object($resource)) { $id_1C = $resource->get('id_1C'); $id_parent_1C = $resource->get('id_parent_1C'); } } $modx->controller->addHtml(<<<HTML <script> Ext.ComponentMgr.onAvailable('modx-resource-main-left', function(page) { page.on('beforerender', function() { page.insert(2,{ xtype: 'textfield' ,name: 'id_1C' ,value: '{$id_1C}' ,anchor: '100%' ,layout: 'anchor' ,fieldLabel: 'ID 1C' }); page.insert(3,{ xtype: 'textfield' ,name: 'id_parent_1C' ,value: '{$id_parent_1C}' ,anchor: '100%' ,layout: 'anchor' ,fieldLabel: 'ID родителя 1C' }); }) }); </script> HTML ); break; case 'OnDocFormSave': $resource->set('id_1C', $_POST['id_1C']); $resource->set('id_parent_1C', $_POST['id_parent_1C']); break; } return;Все заработало. Вопросы / Добавить поле на редактирование к ресурсу [Решено] 3 +1 3
21 августа 2019, 16:25 Проще всего сделать копию конфигурации и применить к нужному тв-полю Вопросы / Ограничить добавление элементов в MIGX 4 0
31 июля 2019, 18:33 Если вызов стандартного сниппета типа [[!getImagesList? &tvname=`product-volume` &tpl=`имя_чанка` &docid=`id_нужного_ресурса`]] вам недостаточен, то коли вы уже получили значение тв-поля типа MIGX, то продолжите обработку примерно так $migx = $res->getTVValue('product-volume'); $migxArr = json_decode($migx,true); $result = ''; foreach($migxArr as $row){ //каждое поле можно получить через $row['ключ_поля'] $result .= '<option value="'.$row["Параметр 1"].'">'.$row["Параметр 2"].'</option>'; } echo $modx->getChunk('tpl.select',array('rows' => $result));где tpl.select это <select>[[+rows]]</select>Но можно и для option сделать свой tpl и юзать его при чтении migx так же через getChunk Вопросы / Решено! Вывод значений migx в сниппете 3 0
30 июля 2019, 11:50 У меня сработало вот это в rest/.htaccess RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-s RewriteRule ^(.*)$ rest/index.php?_rest=$1 [QSA,NC,L] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^(.*)$ rest/index.php [QSA,NC,L] Вопросы / REST API на MODX 18 0
20 июня 2019, 01:14 Все верно) Сделал. Если кому интересно, то вот что предпринял: 1. Создал два события (по факту, даже одно нужно было) в меню системных событий. Имя не важно 2. В core/components/myComponent создал папки elements/plugins и файл plugin.mycomponent.php (любое имя php файла) 3. Создал плагин на созданное ранее событие и указал php файл выше как источник (нажал галочку Статический) 4. В процессоре core/components/migx/processors/mgr/migxdb/update.php вызвал метод $modx->invokeEvent('myEvent',array('myObj' => $object));5. Получил в плагине объект myObj, получил alias и если он пустой, то получаем pagetitle у myObj, создаем новый объект класса modResource $generator = $modx->newObject('modResource'));и в поле alias у myObj вставляем $myObj->set('alias',$generator->cleanAlias($pagetitle)); $myObj->save();родная транслитерация modx сработала!) Вопросы / Событие на сохранение объекта migx db 4 0
25 апреля 2019, 14:00 Да. именно так, толковый словарь) Объекты словаря (как массива объектов) — это термины, словосочетания и аббревиатуры. У такого объекта есть поля название, транскрипция, перевод, где перевод это ссылки на другие такие же объекты но только в другом языке. Т.е. ввводим Hello, переводим на русский — получаем ссылки на объекты «Привет», «здравствуйте» и т.д., в зависимости от выбранного языка перевода Вопросы / Сайт-словарь MIGX,Localizator 2 0
04 февраля 2019, 18:40 Разобрался. msOnCreateOrder нужен. а в нем: (мне просто нужно было дописать к имени блок с ПИН клиента) $products = $msOrder->getMany('Products'); foreach ($products as $product) { $product->set('name',$product->get('name').' (ПИН '.$_POST["extfld_pin"].')'); $product->save(); } Вопросы / Изменить имя товара при помещении в корзину. 3 0
01 октября 2018, 17:20 да, прошу прощения, не туда посмотрел. Но тут аналогично, только в чанке tpl.msOrder. Вместо $order.cost ставить $order.cart_cost и $order.delivery_cost Вопросы / miniShop2 - разделение цены в tpl.msOrder 13 -1
01 октября 2018, 16:54 Роман, загляните в чанк tpl.msEmail и вы увидите, что в этом шаблоне есть 2 переменные: $total.cart_cost и $total.delivery_cost. Там есть условие, при котором, в случае $total.delivery_cost != 0 вывести их сумму. Измените вывод просто на две строчки подряд и вуаля) joxi.ru/Y2LMQo9C9OyNpA Вопросы / miniShop2 - разделение цены в tpl.msOrder 13 0
18 сентября 2018, 13:50 А есть навешанная логика на формы и их элементы? на сабмит? Вопросы / Проблема с AjaxForm 16 0
18 сентября 2018, 13:12 Предлагаю привести вторую форму к виду первой: убрать action, поле со спамом и посмотреть на результат. Это чисто эксперимент. Где-то явно д.б. ошибка в логах или консоли. Сообщения стандартные ajaxformовские? может, не все видите Вопросы / Проблема с AjaxForm 16 +1
18 сентября 2018, 13:07 Ошибки в журнале, консоли или на сервере в логах есть? Вопросы / Проблема с AjaxForm 16 0
18 сентября 2018, 12:54 У вас во второй форме (не рабочей) нет поля с именем contactsMessage, а в валидации есть и помечено required. Потому и не шлется Вопросы / Проблема с AjaxForm 16 +1
24 июля 2018, 21:41 Именно! стал бы я изобретать, когда можно просто вывести заказы по умолчанию через Office minishop2 и навесить стили. Вопросы / msearch2 для заказов minishop2 4 0
10 мая 2018, 15:15 А класс не подскажите какой править? а то для MIGX знаю, а для стандартного нет Новые дополнения и их версии / [MetroniX] – Шаблон оформления админки MODX Revo 172 0
10 мая 2018, 15:14 делал так для MIGX превью. Значит одинаково мыслим в этом направлении) Новые дополнения и их версии / [MetroniX] – Шаблон оформления админки MODX Revo 172 0
09 мая 2018, 17:46 Adorazel, приветствую! Как вы сделали поддержку svg превью? Новые дополнения и их версии / [MetroniX] – Шаблон оформления админки MODX Revo 172 0
09 мая 2018, 16:59 Павел, благодарю за скорый ответ! Попробовал сейчас этот вариант — в превью MIGX вижу только ссылку на файл .svg, но тега img почему-то нет. В журнал ничего из ошибок не записалось. Попробовал указать имя чанка, в котором разместил соответствующий код с тегом img — тоже самое. Вопросы / MIGX и svg картинки 8 0
[videoGallery] Видео галерея YouTube, Vimeo Невозможно установить пакет с подписью: videogallery-1.4.0-beta Ошибка установки Error в /core/packages/videogallery-1.4.0-beta/modCategory/7fc931a7772edc9752c16e9c41eb5e52.reso...
mxBoard: канбан-доска для команд, людей и ИИ-агентов в MODX 3 Привет, добавил пользователя в группу mxBoard(4), создал токен. Добавляю все в postman пишет: rest: { «success»: false, «message»: «Недействительный токен.», «data...
Релиз miniShop2 ver. 4.4.1 & 4.4.2 Подскажите пожалуйста, может я что-то не знаю или упустил. Но есть ли решение по глюку с radio? Указываешь свое radio c одинаковым name и в результате при переключении получаешь вс...
Плагин EnvBadge: визуальный индикатор окружения в админке MODX3 Расскажите пожалуйста как вы настраиваете сайт на MODX 3 чтобы был dev, prod, stage. Можете описать workflow? Допустим у меня 80% — это магазины, там клиенты, продажи, все онлай...
MaxNotify Обновление компонента 1.3.0-pl (22.07.2026) — добавлено автоматическое получение полей через msOrder->toArray(); — массивы и объекты безопасно пропускаются; — стандартные...
MyFavorites MyFavorites — 3.0.0-beta Первая версия для MODX Revolution 3.x — компонент полностью переписан с нуля (PHP >= 8.4, namespaced-ядро MODX 3, PSR-4, сервис-ориентированная архит...
1. оформил метод оплаты картой (по сути копия самовывоза, но зовется так, как мне надо).
2. Сделал страничку для админа (с соотв. правами на просмотр и т.д.). Там админ видит весь список заказов и делает с ними несколько действий, которые тогда были заявлены (уже не помню точно). Но одним из них было действие «отправить счет клиенту». Далее запускался скрипт который оформлял заказ на оплату в сбере через стандартный API сбера через связку Номер заказа на сайте — номер заказа в платежном шлюзе (в базе сайта id заказа в шлюзе сбера сохранялся в спецполе). По факту клиенту высылалась ссылка на оплату в платежном шлюзе (время существования ссылки было выставлено на бесконечное время). Клиент оплачивал заказ и редиректился на страницу успешной оплаты заказа, где по id заказа из GET (это шлюзовский id) менялся статус заказа на сайте.
1. Добавил поля id_1C и id_parent_1C в modx_site_content
2. В плагине на OnMODXInit (у меня там куча полей для расширения разных классов)
написал
3. В плагине на OnDocFormSave и onDocFormPrerender
Все заработало.
вам недостаточен, то коли вы уже получили значение тв-поля типа MIGX, то продолжите обработку примерно так
где tpl.select это
Но можно и для option сделать свой tpl и юзать его при чтении migx так же через getChunk
1. Создал два события (по факту, даже одно нужно было) в меню системных событий. Имя не важно
2. В core/components/myComponent создал папки elements/plugins и файл plugin.mycomponent.php (любое имя php файла)
3. Создал плагин на созданное ранее событие и указал php файл выше как источник (нажал галочку Статический)
4. В процессоре core/components/migx/processors/mgr/migxdb/update.php вызвал метод
5. Получил в плагине объект myObj, получил alias и если он пустой, то получаем pagetitle у myObj, создаем новый объект класса modResource
и в поле alias у myObj вставляем
родная транслитерация modx сработала!)
а в нем: (мне просто нужно было дописать к имени блок с ПИН клиента)
$order.cart_cost и $order.delivery_cost
Попробовал сейчас этот вариант — в превью MIGX вижу только ссылку на файл .svg, но тега img почему-то нет. В журнал ничего из ошибок не записалось. Попробовал указать имя чанка, в котором разместил соответствующий код с тегом img — тоже самое.