Володя · 24 декабря 2017, 20:28 просто добавьте в форму товара поле в массив options <div class="form-group"> <label class="col-md-2 control-label">Add:</label> <div class="col-md-10 form-control-static"> <textarea name="options[comment]"></textarea> </div> </div>пример msdsector.vgrish.ru/index.php?id=5 поле add далее это поле будет в опциях товара Вопросы / Доп. поле товара с возможностью редакции с фронта 2 +2 1
Воеводский Михаил · 20 апреля 2017, 13:26 Алексей абсолютно прав — большую портянку кода никто не хочет изучать, тк это бесполезная трата времени. На одном из проектов решена подобная задача. Алгоритм вкратце: 1) Расширен класс заказа 2) Родной submit() переименован в _submit() 3) Создан новый submit(), который разделяет корзину на несколько по необходимой логике (cart->get(), затем разбиение на несколько разных массивов, после чего в цикле cart->set() для каждого) 4) В цикле для каждого полученного массива корзины вызывается _submit(). Вопросы / Формирование нескольких заказов в miniShop2 6 +2 1
Максим Кузнецов · 29 июня 2016, 16:05 'where' => '{ "id:!=": '~ $_modx->resource.id ~' }' Вопросы / Проблема с where и sortby в fenom 8 +2 7
Василий Наумкин · 24 марта 2016, 07:44 Лично я закрываю служебные директории через веб-сервер на случай обнаружения новой уязвимости в MODX. Например, как это было, когда движок некорректно обрабатывал запросы в несуществующий контекст в коннекторах. Там еще одна PHP авторизация не помогла бы, так как хакер получал доступ к API через обычные GET запросы к определённому файлу. Именно поэтому я закрываю для доступа снаружи и админку, и коннекторы, и ядро. Причём, не через потенциально уязвимый движок, а средствами гораздо менее потенциально уязвимого Nginx. location ~* ^/(core|manager|connectors)/ { auth_basic "Restricted Access"; auth_basic_user_file /home/site/.htpasswd; try_files $uri $uri/ @rewrite; location ~ \.php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass backend-site; } } А зачем нужна вот эта инструкция — большой вопрос. Пошаговые инструкции / Двухуровневая авторизация в менеджере 20 +2 8
Константин · 04 марта 2016, 15:30 Недавно делал на сайте вот так: Вызов сниппета через AjaxForm [[!AjaxForm? &snippet=`QuickOrder` &form=`order.form` ]] И вот сам сниппет QuickOrder <?php $errors = array(); if ( empty( trim( $_POST['total'] ) ) OR !is_numeric( trim( $_POST['total'] ) ) ) { $errors['total'] = 'Вы не заполнили кол-во человек'; } if ( empty( trim( $_POST['phone'] ) ) ) { $errors['phone'] = 'Вы не заполнили телефон'; } if ( !empty( $errors ) ) { return $AjaxForm->error( 'В форме содержатся ошибки!', $errors ); } else { $miniShop2 = $modx->getService( 'minishop2','miniShop2', MODX_CORE_PATH . 'components/minishop2/model/minishop2/', $scriptProperties ); if ( !( $miniShop2 instanceof miniShop2 ) ) { return $AjaxForm->error( 'Ошибка скрипта!' ); } $miniShop2->initialize($modx->context->key, $scriptProperties); $miniShop2->order->add( 'receiver', trim( $_POST['receiver'] ) ); $miniShop2->order->add( 'email', trim( $_POST['email'] ) ); $miniShop2->order->add( 'delivery', 1 ); // id метода доставки $miniShop2->order->add( 'payment', 1 ); // id метода оплаты $miniShop2->cart->add($_POST['id'], $modx->getOption('count', $_POST, 1), $modx->getOption('options', $_POST, array())); return $AjaxForm->success( 'Форма успешно отправлена. Сейчас вы перейдете на страницу оплаты.' ); } JS Callback для отправки формы: $( document ).on('af_complete', function( event, response ) { if( response.success ) { response.form[0].submit(); } }) Вопросы / Покупка товара в один клик 3 +1 7
Пашкович Дмитрий · 27 декабря 2015, 18:08 Спасибо! Работает! Вопросы / Оrder success на отдельной странице 6 -1 1
Воеводский Михаил · 15 июня 2015, 02:44 Потребуется свой сниппет, который запустит всего 2 метода minishop2: $minishop2->cart->add($productId, $count); $orderData = array(/* Здесь много полей, имеющихся в стандартной форме заказа */); $minishop2->order->submit($orderData); Вопросы / Покупка товара в один клик 3 +3 4
UiCMPGenerator дополнение для создания пакетов Ближе к сентябрю, основная загвоздка это создание нормальной документации и видео обзора, а так пакет как бы уже готов
Личный кабинет на Sendit - не удается сбросить пароль Хм, в массиве поле extended приходит пустым, временного пароля там нет. Сам тестовый юзер изначально был зареген в группу Users с правами доступа в личный кабинет (по обычной инстр...
Checkbox для модального окна Они не отключены, они платные, чтобы писали только те, кому действительно очень надо. Когда бесплатно люди начинают думать, что я им должен.
[SendIt 2.6.0] Анализ поведения пользователя для защиты от спама (невидимая капча)... Здравствуйте. Делаю личный кабинет на Sendit и со сбросом пароля возникли проблемы. Можете подсказать, в чем ошибка? Список вопросов в одноименном разделе на modx.pro пока пуст, и,...
Minishop + честный знак (продажа маркированной продукции) В нашем случае мы решили убрать всю логику по маркировке сайта.
MiniShop3 - Не выводятся товары дополнительных категорий @SYAN ваша указанная проблема исправлена еще до версии 1.2.3 @Павлик Мышкин завел: github.com/modx-pro/MiniShop3/issues/480 github.com/modx-pro/MiniShop3/issues/481Исправим в б...
MobileDetect 2.0.0-pl функция "планшеты как стандартные браузеры не работает" в 2.1.0-pl баг исправлен
msImportExport не сохраняет родителя по умолчанию Компонент не понимает кирилические домены при загрузку фото. пример: Error download. Url : https://антаресдвери.рф/upload/iblock/a50/a50b2ef45305a3c18f6e298f1e134880.jpg. Message...
пример msdsector.vgrish.ru/index.php?id=5 поле add
далее это поле будет в опциях товара
На одном из проектов решена подобная задача. Алгоритм вкратце:
1) Расширен класс заказа
2) Родной submit() переименован в _submit()
3) Создан новый submit(), который разделяет корзину на несколько по необходимой логике (cart->get(), затем разбиение на несколько разных массивов, после чего в цикле cart->set() для каждого)
4) В цикле для каждого полученного массива корзины вызывается _submit().
Например, как это было, когда движок некорректно обрабатывал запросы в несуществующий контекст в коннекторах. Там еще одна PHP авторизация не помогла бы, так как хакер получал доступ к API через обычные GET запросы к определённому файлу.
Именно поэтому я закрываю для доступа снаружи и админку, и коннекторы, и ядро. Причём, не через потенциально уязвимый движок, а средствами гораздо менее потенциально уязвимого Nginx.
А зачем нужна вот эта инструкция — большой вопрос.
Вызов сниппета через AjaxForm
И вот сам сниппет QuickOrder
JS Callback для отправки формы: