Василий Наумкин · 07 ноября 2016, 09:27 $modx->event->returnedValuesи будет пустым, пока туда кто-то что-то не запишет. Держи рабочий пример из платного msDiscount case 'msOnGetProductPrice': if ($modx->context->key == 'mgr') {return;} /** * Counts discount of current product for current user, based on rules in msDiscount component * New price must be set in $modx->event->returnedValues['price'] * * @var msProductData $product Object with product properties * @var array $data Array with product properties. Can be empty! * @var float $price Current price of product */ if (!isset($modx->event->returnedValues['price'])) { $modx->event->returnedValues['price'] = $price; } // Get link to product price $price = & $modx->event->returnedValues['price']; $new_price = $msDiscount->getNewPrice($product->id, $price); if ($new_price !== false) { $price = $new_price; } break;Обрати внимание, что в событии доступны 3 параметра: $product, $data и собственно $price Вопросы / Поменять цену у товара через плагин 9 +1 2
Алексей Ерохин · 30 сентября 2016, 17:47 github.com/bezumkin/miniShop2/blob/master/core/components/minishop2/processors/mgr/orders/getlist.class.php#L175 Вопросы / Заказы - как добавить еще пункт к меню? 2 +1 1
Василий Наумкин · 14 сентября 2016, 08:24 При обычном вызове в where передаётся массив, закодированный в JSON. При вызове через Fenom кодировать его нет нужды: {$_modx->runSnippet('!pdoResources', [ 'parents' => 0, 'includeTVs' => 'test', 'where' => ["1 = 1 AND FIND_IN_SET("~$_modx->resource.id~", replace(test, '||', ','))"], 'showLog' => 1 ])} Вопросы / Запись на Fenom 3 +2 2
Сергей Шлоков · 03 сентября 2016, 10:44 Смотрите, Сергей, если задача — разрешить добавлять комментарий 1 раз в n дней, то решается она несколькими строчками. Вариант 1. Через сниппет как у вас. $sql = "SELECT 1 FROM modx_ec_messages C LEFT JOIN modx_ec_threads D ON C.thread=D.id WHERE D.resource = {$modx->resource->id} AND C.date>DATE_SUB(NOW(),INTERVAL {$day} DAY) AND ip = ?" ; $stmt = $modx->prepare($sql); $stmt ->execute($_SERVER['REMOTE_ADDR']); if ($stmt->rowCount() ) { // Запрещено return ''; } // Выполняем указанные сниппет return $modx->runSnippet($snippet, $scriptProperties);Ну и вызывать так // Вместо unlock указываем snippet и любые другие параметры указанного сниппета [[!voting_ban? &snippet=`ecForm` &day=`7`]]Вариант 2. Через плагин. Если у этого компонента есть событие добавления комментария по аналогии с Tickets, то форма показывается, но при добавлении комментария плагин проверяет возможность добавления. Вот как минимум 2 варианта. П.С. Ещё было бы логично проверять почту. У пользователя ip может быть динамическим. А лучше разрешать оставлять отзыв только авторизованным пользователям. Тогда ещё проще. Вопросы / Ограничение голосования по IP для easyComm 8 0 1
mngatoff · 15 августа 2016, 11:49 потому что Вы УЖЕ внутри синтаксиса fenom. таким образом: '@INLINE <a href="{$link}?vendor={$value}">{$title} <sup>{$num}</sup></a>'здесь будет распарсен чанк с подстановкой плейсхолдеров этого чанка. А в нем этого самого link не предполагается. ('@INLINE <a href="'~ $link ~'">bla-bla</a>')а здесь мы заранее формируем строку из внешней переменной и передаем ее в чанк уже готовую. Вопросы / fenom передать переменную внутрь снипета 9 0 2
Сергей Шлоков · 13 августа 2016, 21:54 $modx->event->output("Сообщение об ошибке"); Вопросы / вывод своих сообщений в админке 2 +1 1
Fi1osof · 07 января 2016, 11:57 Если ключ не хотите светить, то однозначно запрос надо слать с вашего сервера на донора. В MODX есть готовый CURL-клиент. Вот код для примера: $client = $modx->getService('rest.modRestCurlClient'); $result = $client->request('https://ya.ru', '/', 'POST', $params = array('foo' => 'foo')); print $result;Можете с этим кодом к консоли поиграться. Вопросы / POST запросы на сторонний API из REVO, как? 7 +12 20
Максим Кузнецов · 30 июня 2015, 14:19 Да, конечно: &leftJoin=`{ "Image": { "class": "msResourceFile", "on": "modResource.id = Image.resource_id AND Image.parent = 0" }, "Thumb": { "class": "msResourceFile", "on": "Image.id = Thumb.parent AND Thumb.path LIKE '%120x90%'" } }` Вот тут более подробная информация и заодно ответ на ваш первый вопрос. Вопросы / Изображения miniShop2 через mSearch 33 +1 2
Peter Zenin · 03 декабря 2013, 20:37 Вот как я сделал (у меня 1700 бесплатная): /core/components/minishop2/custom/delivery/msdeliveryhandlerpetja.class.php: <?php /** * User: Petja * Date: 02.11.13 * Time: 3:53 */ class msDeliveryHandlerPetja extends msDeliveryHandler{ public function getCost(msOrderInterface $order, msDelivery $delivery, $cost = 0) { $add_price = 0; if($cost < 1700){ $add_price = $delivery->get('price'); } return $cost + $add_price; } }А в настройках магазина: варианты доставки, редактировать доставку, Класс-обработчик: msDeliveryHandlerPetja И все вроде. Вопросы / При заказе от 2000 рублей - доставка бесплатно 5 0 1
Возможно ли реализовать возможность предоплаты за доставку на сайте? Так ради этого мне и нужно это все, чтобы клиент платил сразу при оформлении заказа, чтобы избавить себя от мусорных заявок (когда человек оставляет заявку, а предоплату делать не ...
Редизайн сообщества На больших экранах основной текст статьи я бы сделал 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... Да, планируется. Даже чуть больше, чем просто бонусная система)
Держи рабочий пример из платного msDiscount
Обрати внимание, что в событии доступны 3 параметра: $product, $data и собственно $price
Вариант 1. Через сниппет как у вас.
Ну и вызывать так
Вариант 2. Через плагин.
Если у этого компонента есть событие добавления комментария по аналогии с Tickets, то форма показывается, но при добавлении комментария плагин проверяет возможность добавления.
Вот как минимум 2 варианта.
П.С. Ещё было бы логично проверять почту. У пользователя ip может быть динамическим. А лучше разрешать оставлять отзыв только авторизованным пользователям. Тогда ещё проще.
таким образом:
здесь будет распарсен чанк с подстановкой плейсхолдеров этого чанка. А в нем этого самого link не предполагается.
а здесь мы заранее формируем строку из внешней переменной и передаем ее в чанк уже готовую.
Fi1osof·Можете с этим кодом к консоли поиграться.
Вот тут более подробная информация и заодно ответ на ваш первый вопрос.
/core/components/minishop2/custom/delivery/msdeliveryhandlerpetja.class.php:
А в настройках магазина: варианты доставки, редактировать доставку, Класс-обработчик: msDeliveryHandlerPetja
И все вроде.