27 января 2017, 22:08 омг как все просто т.е. все, что в вызове сниппета &*** потом идет в $pdoFetch->setConfig($scriptProperties);?? и не нужно отдельно where обрабатывать в самом сниппете? Вопросы / msOrder указать методы оплаты и доставки руками 4 0
27 января 2017, 21:50 самое простое это расширить таблицу ms2_payments на одну ячейку lang/culture и потом уже в чанке подставлять плагин на OnMODXInit <?php switch ($modx->event->name) { case "OnMODXInit": $map = array( 'msPayment' => array( 'fields' => array( 'lang' => '', ), 'fieldMeta' => array( 'lang' => array( 'dbtype' => 'varchar', 'precision' => '10', 'phptype' => 'string', 'collation' => 'utf8_general_ci', 'null' => false, ), ), ), ); foreach ($map as $class => $data) { $modx->loadClass($class); foreach ($data as $tmp => $fields) { if ($tmp == 'fields') { foreach ($fields as $field => $value) { foreach (array('fields', 'fieldMeta', 'indexes') as $key) { if (isset($data[$key][$field])) { $modx->map[$class][$key][$field] = $data[$key][$field]; } } } } elseif ($tmp == 'composites' || $tmp == 'aggregates') { foreach ($fields as $alias => $relation) { if (!isset($modx->map[$class][$tmp][$alias])) { $modx->map[$class][$tmp][$alias] = $relation; } } } } } break; } в чанк msOrder {set $culture = $_modx->config.cultureKey} {foreach $payments as $payment} {if $culture == $payment.lang?} тут чекбокс {/if} {/foreach} Вопросы / msOrder указать методы оплаты и доставки руками 4 0
19 января 2017, 11:36 Подобный компонент вижу так: Есть объекты для бронирования: ресурсы, тикеты, кастомная таблица и тд node.js отдельно и работает со своей бд, где только строки бронировки (проверка на дату, пользователя и тд), либо с кастомной таблицей в modx самих бронировок Если брать miniShop2: Пользователь выбирает объект для бронирования, node проверяет доступность, если все хорошо, то дается возможность оплатить. На события msOnCreateOrder и msOnChangeOrderStatus для статуса «оплачено» node сохраняет бронировку у себя UPD. желательно, чтобы функции проверки для отправки в node можно было задать на странице в менеджере Т.е. по типу field -> value -> comparison И в самом node.js установить уже методы сравнения UPD2. но это уже получается не просто букинг компонент, а универсальный modx-node.js коннектор) Краудфандинг / Сбор средств на node-booking 26 +2
28 декабря 2016, 14:00 для корзины плагин на msOnBeforeChangeInCart <?php $tmp = $cart->get(); $price = intval(str_replace(' ', '', $_POST['user_price'])); $rate = 1;//default rate $rate = intval(str_replace(' ', '', $_POST['currency_rate'])); if ($rate == 1) { $rate_value = '1';//EURO } if ($rate == 2) { $rate_value = '1.043673';//US Dollar } if ($rate == 3) { $rate_value = '0.853115';//British Pound } if ($rate == 4) { $rate_value = '1.073258';//Swiss Franc } if ($rate == 5) { $rate_value = '63.246377';//Russian Ruble } if ($rate) { $tmp[$key]['price'] = round(($price * $rate_value), 2, PHP_ROUND_HALF_UP); } $cart->set($tmp); header <script type="text/javascript"> $(document).on('change', 'input[name=user_price]', function() { $(this).closest(miniShop2.form).submit(); //miniShop2.Message.success('Стоимость изменена'); }); $(document).on('change', 'select[name=currency_rate]', function() { $(this).closest(miniShop2.form).submit(); //miniShop2.Message.success('Стоимость изменена'); }); </script> tpl msCart <input type="text" name="user_price"/> <select name="currency_rate"> <option value="1">EURO</option> <option value="2">US Dollar</option> <option value="3">British Pound</option> <option value="4">Swiss Franc</option> <option value="5">Russian Ruble</option> </select>рейты взял отсюда www.x-rates.com/table/?from=EUR&amount=1 Вопросы / Модификация цены minishop2 5 0
25 декабря 2016, 13:25 &nestedChunkPrefix=`tickets_`на мой взгляд, это нужно куда-то в главную документацию вписать, так как это часто задаваемый вопрос Вопросы / Ajax пагинация pdoPage (button) - нет ticketMeta 5 +1 2
23 декабря 2016, 21:06 в msCart у каждого товара уже есть key «count», по нему считается total_count в корзине так что это не баг используйте что угодно, например, p_count) Вопросы / Вроде как баг в minishop2 2 0
15 декабря 2016, 19:04 Немного переделал сниппет Bob Ray'а под себя, попробуйте: <?php /* IsMember Snippet */ $groups = $modx->getOption('groups', $scriptProperties); $groups_array = explode(',', $groups); if ($modx->user->isMember($groups_array)) { if (preg_match('/^@INLINE/',$yesChunk)) { return substr($yesChunk, 7); } else { return $modx->getChunk($yesChunk); } } else { if (preg_match('/^@INLINE/',$noChunk)) { return substr($noChunk, 7); } else { return $modx->getChunk($noChunk); } }Вызывать можно inline или чанками [[!IsMember? &groups=`Users` &yesChunk=`@INLINE <h2>Вы в группе А</h2>` &noChunk=`@INLINE <div class="button>Вступить в группу А</div>` ]] [[!IsMember? &groups=`Group_B,Group_C` &yesChunk=`visible_chunk_for_groups_B_C` ]] Вопросы / Не пойму, как этот "пользователь" пробрался 5 0 1
01 ноября 2016, 00:18 спасибо! работает странно, думал, что будет прирост скорости, но вызов полностью через Fenom занимает 0.2992 секунды, а если использовать обычный вывод pdoMenu, то 0.2668 секунд Вопросы / Fenom + pdoMenu и динамический parent 3 0
30 октября 2016, 05:06 а чем такие запросы лучше? Вопросы / Выборка пользователей по определенным параметрам 12 0
28 октября 2016, 22:15 в былые времена на их сайте было повсюду CMF) я точно помню ну не эффект Манделы же это: р Новости и события / Обновление modx.com 19 0
28 октября 2016, 05:16 CMF >> CMS обидно а дизайн – увы, увы… Новости и события / Обновление modx.com 19 +1
24 октября 2016, 11:19 велосипед для данного конкретного случая приведен в пункте 3.4 Готовые решения / TinyMCE + Tickets + выбор главной картинки в TV 27 0
24 октября 2016, 11:16 С Днем рождения! Спасибо за самое крутое сообщество ModX, творческих успехов! Новости и события / День рождения Безумкина! 26 +3
03 октября 2016, 07:29 оу… нашел решение: 1. захардкодить $paymentUrl в paypal.class.php в папке core/components/minishop2/custom/payment $paymentUrl = 'http://сайт.com/assets/components/minishop2/payment/paypal.php';2. в assets/components/minishop2/payment/paypal.php добавить перед $success id страниц отмены if ($context == 'web') { $makeId = '277'; } elseif ($context == 'ru') { $makeId = '278'; }3. заменить на if ($id = $modx->getOption('ms2_payment_paypal_cancel_id', null, 0)) { $cancel = $modx->makeUrl($makeId, $context, $params, 'full'); } Вопросы / MiniShop2: Paypal и разные контексты на сайте 3 0
03 октября 2016, 06:40 Даже если в paypal.class.php захардкодить $paymentUrl, то возвращает пустую страницу для других языков :/ Вопросы / MiniShop2: Paypal и разные контексты на сайте 3 0
03 октября 2016, 06:38 Поздно увидел ваше сообщение, похоже зря обновился на новый minishop Вопросы / minishop2, PayPal, вывод средств и все такое... 11 0
03 октября 2016, 06:36 Проблему с контекстами описывал два года назад, странно, что она еще не решена Вопросы / minishop2, PayPal, вывод средств и все такое... 11 0
17 сентября 2016, 17:29 &class=`msProduct`? а без where выводит что-нибудь? Вопросы / Как поженить Wayfinder и msProducts? 13 +1
Возможно ли реализовать возможность предоплаты за доставку на сайте? У меня Робокасса, у них вроде есть docs.robokassa.ru/ru/iframe
Редизайн сообщества На больших экранах основной текст статьи я бы сделал 18 px. Да и текст комментариев можно таким сделать. Для меня лично 16 — мелковато на больших экранах (в комментариях вообще 15 ...
MiniShop3 1.11.0 при клике на radio идет пересчет итоговой суммы в orderUI, в зависимости от способов(оплаты доставки) я так поняла. попробуй код запуска события поставить ниже чем orderUI, после
ImageOptimizer - WebP/AVIF и responsive <picture> для MODX 3 Дополнение доступно modstore.pro/packages/photos-and-files/imageoptimizer
Localizator3 для MODX 3: перевод полей и TV без отдельного context на язык, Vue 3 + PrimeV... Добавил localizator3_default_language
msInShopNotify Начиная с версии 3.0.0-beta добавлена поддержка MiniShop3 Минимальные требования: PHP 8.4 MODX 3.2 MiniShop3
MaxNotify Обновление 1.2.0-pl (03.07.2026) — добавлены уведомления о заявках FormIt через hook-сниппет `maxNotifyFormIt`; — добавлены уведомления о заявках SendIt через hook-...
[msBonus2] 1.3.0 Бонус-коды, уведомления о сгорании и совместимость с msMultiCurre... Да, планируется. Даже чуть больше, чем просто бонусная система)
т.е. все, что в вызове сниппета &*** потом идет в ?? и не нужно отдельно where обрабатывать в самом сниппете?
плагин на OnMODXInit
в чанк msOrder
Есть объекты для бронирования: ресурсы, тикеты, кастомная таблица и тд
node.js отдельно и работает со своей бд, где только строки бронировки (проверка на дату, пользователя и тд), либо с кастомной таблицей в modx самих бронировок
Если брать miniShop2:
Пользователь выбирает объект для бронирования, node проверяет доступность, если все хорошо, то дается возможность оплатить. На события msOnCreateOrder и msOnChangeOrderStatus для статуса «оплачено» node сохраняет бронировку у себя
UPD. желательно, чтобы функции проверки для отправки в node можно было задать на странице в менеджере
Т.е. по типу field -> value -> comparison
И в самом node.js установить уже методы сравнения
UPD2. но это уже получается не просто букинг компонент, а универсальный modx-node.js коннектор)
для корзины
плагин на msOnBeforeChangeInCart
header
tpl msCart
рейты взял отсюда www.x-rates.com/table/?from=EUR&amount=1
так что это не баг
используйте что угодно, например, p_count)
Вызывать можно inline или чанками
странно, думал, что будет прирост скорости, но вызов полностью через Fenom занимает 0.2992 секунды, а если использовать обычный вывод pdoMenu, то 0.2668 секунд
ну не эффект Манделы же это: р
обидно
а дизайн – увы, увы…
1. захардкодить $paymentUrl в paypal.class.php в папке core/components/minishop2/custom/payment
2. в assets/components/minishop2/payment/paypal.php добавить перед $success id страниц отмены
3. заменить на
а без where выводит что-нибудь?