but1head · 12 декабря 2016, 19:36 3 0 Для pdoPage <?php $pdoFetch = $modx->getService('pdoFetch'); $pdoFetch->setConfig($scriptProperties); $outputSeparator = isset($outputSeparator) ? $outputSeparator : PHP_EOL; $totalVar = isset($totalVar) ? $totalVar : 'page.total'; $offset = isset($offset) ? $offset : 0; $limit = isset($limit) ? $limit : 8; $sql = "SELECT * FROM %tablename%"; $q = $modx->prepare($sql); $q->execute(); $rows = $q->fetchAll(PDO::FETCH_ASSOC); // Кол-во записей для пагинации $_count = $modx->prepare("SELECT COUNT(*) AS count FROM %tablename%"); $_count->execute(); $count = $_count->fetch(PDO::FETCH_ASSOC); $modx->setPlaceholder($totalVar, $count['count']); $output = array(); foreach($rows as $row) { $output[] = $pdoFetch->getChunk($tpl, $row); } return implode($outputSeparator, $output); Вызов [[!pdoPage? &element=`&snippetname%` ]] Вопросы / pdoResources из собственной таблицы 3
Павел Гвоздь · 08 декабря 2016, 21:12 2 +2 define('MODX_API_MODE', true); do { $dir = dirname(!empty($file) ? dirname($file) : __FILE__); $file = $dir . '/index.php'; $i = isset($i) ? --$i : 10; } while ($i && !file_exists($file)); if (file_exists($file)) { require_once $file; } $modx->getService('error', 'error.modError'); $modx->getRequest(); $modx->setLogLevel(modX::LOG_LEVEL_ERROR); $modx->setLogTarget('FILE'); $modx->error->message = null; $modx->lexicon->load('default'); $output = $modx->lexicon('failure'); $response = $modx->runProcessor('resource/emptyrecyclebin'); if (!empty($response->response) && $response->response['success']) { $output = $modx->lexicon('success'); } exit($output); :) Нет же, я проверил — с процессором работает, поэтому решил реализовать через процессор. Вопросы / Как удалить из корзины ~90 000 ресурсов? 8
Воеводский Михаил · 26 ноября 2016, 09:15 4 +3 2) Это ошибка MS2 при сохранении свойств доставки. Когда-то столкнулся, но PR не подготовил, причин уже не помню. Надеюсь, Василий добавит исправление в MS2. В файлах /core/components/minishop2/processors/mgr/settings/delivery/create.class.php и /core/components/minishop2/processors/mgr/settings/delivery/update.class.php блок foreach ($prices as $field) { if ($tmp = $this->getProperty($field)) { $tmp = preg_replace(array('#[^0-9%\-,\.]#', '#,#'), array('', '.'), $tmp); if (strpos($tmp, '%') !== false) { $tmp = str_replace('%', '', $tmp) . '%'; } if (strpos($tmp, '-') !== false) { $tmp = str_replace('-', '', $tmp) * -1; } if (empty($tmp)) { $tmp = 0; } $this->setProperty($field, $tmp); } }необходимо заменить на следующий: foreach ($prices as $field) { if ($tmp = $this->getProperty($field)) { $isPercent = false; $tmp = preg_replace(array('#[^0-9%\-,\.]#', '#,#'), array('', '.'), $tmp); if (strpos($tmp, '%') !== false) { $tmp = str_replace('%', '', $tmp) . '%'; $isPercent = true; } if (strpos($tmp, '-') !== false) { $tmp = str_replace('-', '', $tmp) * -1; if ($isPercent) { $tmp .= '%'; } } if (empty($tmp)) { $tmp = 0; } $this->setProperty($field, $tmp); } }После этого минусовой процент начнет правильно сохраняться, а обработка такого значения в остальных местах происходит корректно. Вопросы / Пара вопросов по miniShop2 5
Дмитрий Суворов · 16 ноября 2016, 01:33 2 +1 function hideaddress(){ if ($('[name="delivery"]:checked').attr('id') == 'delivery_1') { $("#address_block").hide(); } else { $("#address_block").show(); return false; } } window.onload = function () { hideaddress(); }; $(document).on('change', '[name="delivery"]', function() { hideaddress(); }) Вопросы / Скрыть блок адрес доставки при самовывозе 7
Василий Наумкин · 15 ноября 2016, 07:08 1 0 Как в первый раз, серьёзно $(document).ready(function() { console.log(miniShop2); }); Или даже [[*id:input=`<script>console.log(miniShop2);</script>`:jsToBottom]] Вопросы / Uncaught ReferenceError: miniShop2 is not defined 10
but1head · 08 ноября 2016, 20:58 2 0 <?php if($modx->event->name != 'msOnGetProductPrice') return; if($modx->user && $modx->user->isMember('Wholesaler')){ $values = & $modx->event->returnedValues; $resource = $modx->getObject('msProduct', $product->id); $wholesale_price = $resource->getTVValue('price_opt'); if($wholesale_price){ $values['old_price'] = $values['price']; $values['price'] = $wholesale_price; } }Элементарная оптовая цена для юзеров в группе «оптовик», сделаная через tv, 3 минуты работы. Очень сложно? Важное качество программиста «гуглить», а не просить сделать других его работу. Не умеете — не беритесь. Вопросы / 2 цены для товара miniShop2 29
Семен Морозов · 27 октября 2016, 17:57 4 0 Мне тут подсказалаи, что вот так можно сделать: Изменения в msMiniCartDynamic строка 37 $out .= $modx->getChunk($tpl, array( 'name_d' => $t['title'], 'id_d' => $v['id'], 'key_d' => $k, 'count_d' => $v['count'], 'price_d' => $v['price'], 'sum_d' => $v['count'] * $v['price'], 'img_d' => $t['img_path'], 'options_d' => implode(';',$v['options']), )); в core/components/msminicartdynamic/model/msminicartdynamic/msminicartdynamic.class.php строка 80 $success['data'] = array( 'key_d' => $k, 'id_d' => $v['id'], 'name_d' => $t['title'], 'count_d' => $v['count'], 'price_d' => $v['price'], 'sum_d' => $v['count'] * $v['price'], 'img_d' => $t['img_path'], 'options_d' => implode(';',$v['options']), ); В [[+options_d]] выводятся все опции через ;Если все гуд, внесете в компонент? Новые дополнения и их версии / Динамическое обновление мини корзины. 134
Володя · 30 сентября 2016, 17:32 2 +2 создайте настройку ms2_cart_max_count и укажите там нужное ограничение. Вопросы / Ограничение на количество единиц товара в корзине 4
Андрей · 15 сентября 2016, 14:32 2 +1 $id = $response->response['object']['id']; //id товара $gallery = array( 'id' => $id, 'name' => '', 'rank' => 0, 'file' => MODX_BASE_PATH.'/userdata/promo/2016-hennessey-venom-gt-spyder-v4-1080.jpg' ); $upload = $modx->runProcessor('gallery/upload', $gallery, array( 'processors_path' => MODX_CORE_PATH.'components/minishop2/processors/mgr/' )); if ($upload->isError()) { print_r($upload->getResponse()); } Не уверен правда как правильно сделать загрузку сразу нескольких файлов. Вопросы / создание программно товара miniShop2 7
Павел Романов · 08 сентября 2016, 11:40 1 +2 getProducts не умеет работать с картинками товаров miniShop — он просто не знает о существовании таблицы, где они прописаны. Можете написать сниппет, который будет вытаскивать из таблицы modx_ms2_products значение поля image для ID текущего ресурса, а можете поставить Rowboat и сделать так: [[Rowboat? &table=`modx_ms2_products` &tpl=`img` &where=`{"id":"[[+id]]"}` ]]Ну а в чанке img используйте плейсхолдер [[+image]], который выведет путь к картинке. Дальше по обстоятельствам ). Вопросы / вывод изображения в getProducts 5
MiniShop3 1.11.0 при клике на radio идет пересчет итоговой суммы в 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`; — добавлены ...
[msBonus2] 1.3.0 Бонус-коды, уведомления о сгорании и совместимость с msMultiCurre... Да, планируется. Даже чуть больше, чем просто бонусная система)
FileMan - прикрепление файлов к ресурсам для MODX 3 Добрый день! Может что-то с правами доступа к файлам? Посмотрите логи в modx, в php. С ходу сложно ответить, ранее не было таких случаев.
Вызов
:) Нет же, я проверил — с процессором работает, поэтому решил реализовать через процессор.
В файлах /core/components/minishop2/processors/mgr/settings/delivery/create.class.php и /core/components/minishop2/processors/mgr/settings/delivery/update.class.php блок
необходимо заменить на следующий:
После этого минусовой процент начнет правильно сохраняться, а обработка такого значения в остальных местах происходит корректно.
Или даже
Важное качество программиста «гуглить», а не просить сделать других его работу. Не умеете — не беритесь.
Если все гуд, внесете в компонент?
Не уверен правда как правильно сделать загрузку сразу нескольких файлов.
Можете написать сниппет, который будет вытаскивать из таблицы modx_ms2_products значение поля image для ID текущего ресурса, а можете поставить Rowboat и сделать так:
Ну а в чанке img используйте плейсхолдер [[+image]], который выведет путь к картинке. Дальше по обстоятельствам ).