Ryan Murphy · 02 мая 2016, 14:06 Так как ответа на вопрос не было, я отправлю своё решение, возможно, кому-то понадобится. Работает хорошо. Как и написал Василий, можно просто сделать выборку через class: <div class="container" id="pdopage"> <div class="rows"> {$_modx->runSnippet('!pdoPage',[ 'select' => ['galItem' => '*'] | toJSON, 'ajaxMode' => 'default', 'tpl' => 'gallery.row', 'class' => 'galItem', 'sortby' => 'id' ])} </div> {$_modx->getPlaceholder('page.nav')} </div> Вопросы / pdoPage + gallery 7 +1 1
Дмитрий Танцирев · 08 апреля 2016, 21:56 Может кому пригодится: {"field":"published", "caption":"Чекбокс", "inputTVtype":"checkbox", "inputOptionValues":"Да==1"} {"header": "Чекбокс", "dataIndex":"published", "show_in_grid":1, "renderer":"this.renderCrossTick"} Вопросы / MIGX и checkbox 3 0 11
Илья Уткин · 21 марта 2016, 16:46 ilyaut.ru/cheats/to-rebuild-all-previews-of-products/ Запускать в Console Вопросы / Обновление всех превью товара MS2 42 +2 3
Константин · 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
Евгений Шеронов · 17 февраля 2016, 19:02 Всё есть в документации к AjaxForm: Немножко подправив, можно сделать что-угодно. $(document).on('af_complete', function(event, response) { if (response.success) { var form = response.form; if (form.attr('id') == 'callback') {yaCounter25745255.reachGoal('callback');} if (form.attr('id') == 'buy') {yaCounter25745255.reachGoal('buy');} if (form.attr('id') == 'commerce') {yaCounter25745255.reachGoal('commerce');} } }); Не проверял, но должно работать) Вопросы / Цели Я.Метрики по удачному событию 4 +3 2
Павел Романов · 10 февраля 2016, 15:34 Плагин по-любому нужен, иначе как Вы сообщите MODX из какого контекста выдавать сайт? Хотя бы такой (вешается на событие OnHandleRequest): <?php if ($modx->context->get('key') == 'mgr') { return; } switch ($modx->getOption('http_host')) { case 'домен1.ru': $modx->switchContext('ключ_контекста_1'); break; case 'домен2.ru': $modx->switchContext('ключ_контекста_2'); break; } Вопросы / Два сайта на одном движке. 5 0 1
Павел Гвоздь · 27 января 2016, 10:30 1) Создаёшь файл core/components/minishop2/custom/order/myorderhandler.class.php с содержимым: <?php class myOrderHandler extends msOrderHandler { public function submit($data = array()) { $min_price_order = $this->modx->getOption('ms2_minimum_price_order'); $cart_status = $this->ms2->cart->status(); $currency = $this->modx->lexicon('ms2_frontend_currency'); if( $cart_status['total_cost'] < $min_price_order ) { return $this->error( 'ms2_order_err_total_price', array(), array('price'=>$min_price_order, 'currency'=>$currency) ); } return parent::submit($data); } } 2) Создаёшь настройку (желательно в namespace «minishop2») ms2_minimum_price_order со значением суммы заказа, например: 50000. 3) В настройке ms2_order_handler_class указываешь только что созданный класс обработчик, вот так: myOrderHandler. Вроде всё… Вопросы / Минимальный заказ 17 0 5
Василий Наумкин · 21 января 2016, 09:09 На старой версии у меня работает, а в новой, похоже, что-то поменялось. Бронебойный вариант: $("#cleanmincart").click(function(){ $.post(document.location, {ms2_action: 'cart/clean'}); }); Вопросы / Как сделать очистку корзины из шаблона tpl.MinCart 9 0 3
Наумов Алексей · 12 января 2016, 16:03 Ну… пишем плагин на OnDocFormSave. В нем мы делаем проверку на: 1. Что мы сохраняем новый документ if ($mode == 'new') { ... }2. Что наш документ — это Дом, например по шаблону проверяем if($resource->get('template') == XXX)И создаем дочерние ресурсы, используя $resource->get('id') (да-да, id нового документа у нас уже есть) в качестве parent. $data = array( 'parent' => $resource->get('id'), 'published' => 1, 'pagetitle' => 'Название', 'content' => 'Текст страницы' ); $modx->runProcessor('resource/create', $data); Вопросы / Как автоматически создавать дочерние ресурсы? 7 +3 2
Борис И · 03 января 2016, 18:16 Пример вывода ссылки на странице [[!+modx.user.id:memberof=`Administrator`:then=`<a href="/dobavit-tickets.html?tid=[[*id]]">Ред-с-фронта</a>`]]1. проверяем что мы админ 2. если админ, вывести ссылку на /dobavit-tickets.html?tid=[[*id]], это страница добавления тикета с фронта сайта, [[*id]] — соответственно того тикета который хотим редактировать. Чанк для редактирования tpl.Tickets.form.update Как-то так, если нигде не ошибся. Вопросы / Tickets: редактирование тикетов 6 +1 2
Gallery3x 3.4.0 - вставка галерей прямо из визуального редактора (CKEditor и TinyMCE RTE) Здравствуйте. Есть консольный скрипт Вот почитайте: docs.ivan345.com/books/gallery3x/page/import-ms2galleryphp
[mSync] Новая версия синхронизации с 1С Всем привет. В какой то момент начали сыпаться ошибки: Error 23000 executing statement: INSERT INTO `modx_msync_products` (`product_id`, `uuid_1c`) VALUES ...
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 баг исправлен
Запускать в Console
Вызов сниппета через AjaxForm
И вот сам сниппет QuickOrder
JS Callback для отправки формы:
Немножко подправив, можно сделать что-угодно.
Не проверял, но должно работать)
Хотя бы такой (вешается на событие OnHandleRequest):
2) Создаёшь настройку (желательно в namespace «minishop2») ms2_minimum_price_order со значением суммы заказа, например: 50000.
3) В настройке ms2_order_handler_class указываешь только что созданный класс обработчик, вот так: myOrderHandler.
Вроде всё…
В нем мы делаем проверку на:
1. Что мы сохраняем новый документ
2. Что наш документ — это Дом, например по шаблону проверяем
И создаем дочерние ресурсы, используя $resource->get('id') (да-да, id нового документа у нас уже есть) в качестве parent.
1. проверяем что мы админ
2. если админ, вывести ссылку на /dobavit-tickets.html?tid=[[*id]], это страница добавления тикета с фронта сайта, [[*id]] — соответственно того тикета который хотим редактировать.
Чанк для редактирования tpl.Tickets.form.update
Как-то так, если нигде не ошибся.