Павел Романов · 13 января 2025, 12:49 Сниппет можно сократить до такого ): <?php $out = []; $table = $modx->getOption('table_prefix').'msop_colors'; if($query = $modx->query("SELECT color, pattern FROM {$table} WHERE value = '{$color}'")){ $out = $query->fetch(PDO::FETCH_ASSOC); } return $out; Готовые решения / Получаем color и pattern из таблицы зная название цвета для дополнения msOptionsColor 3 +2 1
Илья Уткин · 06 декабря 2022, 14:58 Вот пример того, как можно кешировать — ilyaut.ru/cheats/caching-mfilter Вопросы / Кто-нибудь пробовал писать кеширование для mFilter2? 1 0 1
Илья Александрович · 26 ноября 2022, 00:03 вот решение: {'!mFilter2' | snippet : [ 'class' => 'msProduct', 'element' => 'msProducts', 'loadModels' => 'msTopProducts', 'parents' => $_modx->resource.id, 'showHidden' => '0', 'showUnpublished' => '0', 'hideContainers' => '0', 'showLog' => '0', 'suggestions' => '1', 'ajaxMode' => 'default', 'includeThumbs' => 'medium,480x576', 'tpls' => 'tpl.product.block,tpl.product.row', 'tplOuter' => 'tpl.mFilter2.outer', 'tplFilter.outer.default' => 'tpl.mFilter2.filter.outer', 'tplFilter.row.default' => 'tpl.mFilter2.filter.checkbox', 'filters' => ' resource|parent:parents, ', 'leftJoin'=>'{ "P1": { "class": "msProductOption", "on": "P1.key = \'p1\' and P1.product_id = msProduct.id" }, "P2": { "class": "msProductOption", "on": "P2.key = \'p2\' and P2.product_id = msProduct.id" }, "msTopProduct" : { "class" : "msTopProduct", "alias" : "msTopProduct", "on" : ["msTopProduct.product_id = msProduct.id", "msTopProduct.category_id = ' ~ $_modx->resource.id ~ ' "] } }', 'sortAliases' => '{"p1":"P1","p2":"P2"}', 'aliases' => 'p1|value==p1,p2|value==p2', 'sortby' => '{"msTopProduct.rank":"DESC", "msProduct.menuindex":"ASC"}', 'limit' => '9', 'pageLimit' => '7', 'tplPage' => '@INLINE <li class="page-item control"><a class="page-link" href="[[+href]]">[[+pageNo]]</a></li>', 'tplPageWrapper' => '@INLINE <div class="col-12 pagination justify-content-center"><ul class="pagination">[[+first]][[+prev]][[+pages]][[+next]][[+last]]</ul></div>', 'tplPageActive' => '@INLINE <li class="page-item active"><span class="page-link">[[+pageNo]]</span></li>', 'tplPageFirst' => '@INLINE <li class="page-item control"><a class="page-link" href="[[+href]]"><i class="fas fa-angle-double-left"></i></a></li>', 'tplPageLast' => '@INLINE <li class="page-item control"><a class="page-link" href="[[+href]]"><i class="fas fa-angle-double-right"></i></a></li>', 'tplPagePrev' => '@INLINE <li class="page-item control"><a class="page-link" href="[[+href]]"><i class="fas fa-angle-left"></i></a></li>', 'tplPageNext' => '@INLINE <li class="page-item control"><a class="page-link" href="[[+href]]"><i class="fas fa-angle-right"></i></a></li>', 'tplPageSkip' => '@INLINE <li class="page-item disabled"><span>...</span></li>', 'tplPageFirstEmpty' => '@INLINE ', 'tplPageLastEmpty' => '@INLINE ', 'tplPagePrevEmpty' => '@INLINE ', 'tplPageNextEmpty' => '@INLINE ', 'ajaxTplMore' => '@INLINE <button class="btn btn-outline-danger rounded-0 my-3 btn-more">Загрузить ещё</button>', ]} Вопросы / Сортировка по опции товара miniShop2 4 +1 1
Тодор · 29 ноября 2021, 15:38 foreach($data as $item){ /* $item = array( [name] => Название поризводителя [resource] => [country] => [logo] => images/logo.png [address] => [phone] => [fax] => [email] => [description] => ) */ $vendor = $modx->newObject('msVendor', $item); $vendor->save(); } Вопросы / Minishop2 раздел Производители (ms|vendor). Как их массово добавить в админку? 1 0 1
Илья Александрович · 04 марта 2021, 23:41 Вот рабочий вариант, только как сразу все категории перезаписать не получилось сделать, нужно менять parent <?php $products = $modx->getIterator('msProduct', array('parent' => 125)); foreach($products as $product){ $options = $product->getMany('Options'); $options = array( 'quantity' => array('99999'), ); $product->set('options', $options); $product->save(); }; Вопросы / Массовое редактирование товаров minishop (отредактировать опцию у товара) 10 0 1
Артур Шевченко · 28 января 2021, 16:11 Думаю стоить дополнить этот пост раз он есть в поиске. Во-первых на мой взгляд решение не самое лучшее, но достаточно простое, поэтому я его немного переделал для компактности ПЛАГИН <?php switch ($modx->event->name) { case 'OnDocFormSave': $sql = 'SELECT article FROM modx_msop_modifications WHERE rid= ?'; $statement = $modx->prepare($sql); if ( $statement->execute(array($id)) ) { $result = $statement->fetchAll(PDO::FETCH_COLUMN); } $resource->set('introtext', implode(',',$result)); $resource->save(); break; }КОД ДЛЯ КОСОЛИ, чтобы обновить товары <?php $resources = $modx->getIterator('msProduct'); foreach ($resources as $resource) { $id = $resource->get('id'); $sql = 'SELECT article FROM modx_msop_modifications WHERE rid= ?'; $statement = $modx->prepare($sql); if ( $statement->execute(array($id)) ) { $result = $statement->fetchAll(PDO::FETCH_COLUMN); } $resource->set('introtext', implode(',',$result)); $resource->save(); } Вопросы / Поиск по артикулу модификации [Решено] 3 0 1
Константин Ильин · 19 января 2021, 12:21 Недавно делал для товаров Минишопа. $gallery = array( 'id' => $id, 'file' => $URL_FULL // https://site.ru/img/123.jpg ); $upload = $modx->runProcessor('gallery/upload', $gallery, array( 'processors_path' => MODX_CORE_PATH.'components/minishop2/processors/mgr/' )); if ($upload->isError()) { //print_r($upload->getResponse()); } $modx->error->reset(); для ms2gallery // Почему то источник у меня слетал, так что этот код возможно не нужен. if ($resource = $modx->getObject('modResource', $id)) { $properties = $resource->getProperties('ms2gallery'); $properties['media_source'] = 3; $resource->setProperties($properties, 'ms2gallery'); $resource->save(); } $gallery = array( 'id' => $id, 'file' => $URL_FULL // https://site.ru/img/123.jpg ); $upload = $modx->runProcessor('gallery/upload', $gallery, array( 'processors_path' => MODX_CORE_PATH.'components/ms2gallery/processors/mgr/' )); Вопросы / MODX REVO API Как сохранить изображение по URL? 8 +2 1
Руслан · 16 января 2021, 19:13 Еще удобнее использовать для таких целей switch: {switch $_modx->resource.parent} {case 15} ... {case 16,17, 18} ... {case 19} ... {case default, 20} ... {/switch} из той же документации на гитхабе Вопросы / Как в Fenom настроить модификатор "in"? Работает как-то странно. 7 +1 1
Артур Шевченко · 29 ноября 2020, 19:03 $(document).on('msoptionsprice_product_action', function (e, action, form, response) { var mid = $('input[name="curmid"]').val(); //console.log(response); if(response.data.modification.count == 0){ $('.modprice-' + response.data.modification.rid).each(function(){$(this).css('display', 'none')}); //показываем НЕТ В НАЛИЧИИ $('.modpricenone-' + response.data.modification.rid).each(function(){$(this).css('display', 'inline')}); //показываем В НАЛИЧИИ $('.jsAddToCart').prop('disabled', true); }else{ //тут наоборот $('.modprice-' + response.data.modification.rid).each(function(){$(this).css('display', 'inline')}); $('.modpricenone-' + response.data.modification.rid).each(function(){$(this).css('display', 'none')}); $('.jsAddToCart').prop('disabled', false); } });Писать тут assets/components/msoptionsprice/js/web/default.js но лучше сделать копию, поменять путь в настройках, и в копии писать. Новые дополнения и их версии / [msOptionsPrice2] - Модификации продукта. 375 0 2
Володя · 21 апреля 2019, 08:48 {set $modification = '!msOptionsPrice.modification'|snippet:[ 'includeThumbs' => 'small', 'return' => 'data' ]} {if $modification && count($modification) > 1} {$modification|print} {/if} Вопросы / Условие для вывода модификаций 1 +1 1
UiCMPGenerator дополнение для создания пакетов Ближе к сентябрю, основная загвоздка это создание нормальной документации и видео обзора, а так пакет как бы уже готов
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 баг исправлен
msImportExport не сохраняет родителя по умолчанию Компонент не понимает кирилические домены при загрузку фото. пример: Error download. Url : https://антаресдвери.рф/upload/iblock/a50/a50b2ef45305a3c18f6e298f1e134880.jpg. Message...
ПЛАГИН
КОД ДЛЯ КОСОЛИ, чтобы обновить товары
для ms2gallery
из той же документации на гитхабе