Василий Наумкин · 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
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 баг исправлен
Держи рабочий пример из платного msDiscount
Обрати внимание, что в событии доступны 3 параметра: $product, $data и собственно $price
Вариант 1. Через сниппет как у вас.
Ну и вызывать так
Вариант 2. Через плагин.
Если у этого компонента есть событие добавления комментария по аналогии с Tickets, то форма показывается, но при добавлении комментария плагин проверяет возможность добавления.
Вот как минимум 2 варианта.
П.С. Ещё было бы логично проверять почту. У пользователя ip может быть динамическим. А лучше разрешать оставлять отзыв только авторизованным пользователям. Тогда ещё проще.
таким образом:
здесь будет распарсен чанк с подстановкой плейсхолдеров этого чанка. А в нем этого самого link не предполагается.
а здесь мы заранее формируем строку из внешней переменной и передаем ее в чанк уже готовую.
Fi1osof·Можете с этим кодом к консоли поиграться.
Вот тут более подробная информация и заодно ответ на ваш первый вопрос.
/core/components/minishop2/custom/delivery/msdeliveryhandlerpetja.class.php:
А в настройках магазина: варианты доставки, редактировать доставку, Класс-обработчик: msDeliveryHandlerPetja
И все вроде.