11 января 2022, 21:16 Спасибо! Благодарю за наводку с pdoToolsOnFenomInit Новые дополнения и их версии / [pdoTools] Обновление 2.13 - повышение безопасности, данные для Fenom и т.д. 20 0
11 января 2022, 14:02 Сергей, вопрос: а если требуется подтянуть файловые элементы для одного сниппета или плагина из одной папки, а для другого – из другой? У меня на многих сайтах такая необходимость. Особенно это касается собственных компонентов – чтобы не складировать все в одной папке, часть плагинов подключаются из папки с элементами, которая находится в каталоге компонента. Мне кажется, что отключение этого параметра, сильно снизит удобство. Или есть еще способ подключать сниппет или плагин через $pdoTools->runSnippet('<НАЗВАНИЕ ФАЙЛА>') из определенного каталога, отличного от того, что задан в системных настройках pdoTools? Новые дополнения и их версии / [pdoTools] Обновление 2.13 - повышение безопасности, данные для Fenom и т.д. 20 0
10 октября 2021, 17:09 Спасибо, Роман! Да, действительно, назначил выполнение задач из планировщика на пользователя, где сайт – все окей. Под root в cache папке создавались файлы. Благодарю за наводку. Вопросы / Кэш от root 3 0
24 июня 2021, 17:01 Добрый день! Нужно перезаписать ExtJS-компонент miniShop2.tree.Categories. По шагам: Создаем файлы: /core/components/extendedminishop2/elements/plugins/extended.minishop2.php /assets/components/extendedminishop2/js/mgr/category.tree.js Создаем в админке плагин extendedMinishop2. Назначаем ему событие OnDocFormPrerender Код плагина в админке: <?php if ($pdoTools = $modx->getService('pdoTools')) { $pdoTools->runSnippet('@FILE plugins/extended.minishop2.php', array_merge( array( 'elementsPath' => MODX_CORE_PATH . 'components/extendedminishop2/elements/' ), $scriptProperties)); } Код в файле /core/components/extendedminishop2/elements/plugins/extended.minishop2.php <?php switch ($modx->event->name) { case 'OnDocFormPrerender': $modx->controller->addLastJavaScript(MODX_ASSETS_URL . 'components/extendedminishop2/js/mgr/category.tree.js'); break; } Код в файле /assets/components/extendedminishop2/js/mgr/category.tree.js Ext.override(miniShop2.tree.Categories, { prepareNodes: function(node) { var params = {}; if (location.search) { var parts = location.search.substring(1).split('&'); for (var i = 0; i < parts.length; i++) { var nv = parts[i].split('='); if (!nv[0]) continue; params[nv[0]] = nv[1] || true; } } var activeFile = params.file; Ext.each(node.childNodes,function (node) { if (node.attributes.selected || node.id == activeFile) { node.ui.addClass('x-tree-selected'); } if (node.attributes.text) { node.ui.textNode.innerHTML = node.attributes.text; } this.addNodeButtons(node); }, this); } }); Вопросы / Проблема с отображением <span dir="ltr">(22)</span> 2 +1
11 декабря 2019, 13:02 Старые добрые средние века) Новые дополнения и их версии / [multiSite] - Мультисайт на MODX 27 0
26 декабря 2018, 13:11 Затестил – компонент отличный! Новые дополнения и их версии / [SEO Domains] Добавление доп. доменов и поддоменов для сайта, с добавлением в вебмастер 44 0
24 декабря 2018, 19:16 Класс! Новые дополнения и их версии / [FormWatcher] - Отслеживание брошенных форм 14 0
24 декабря 2018, 18:21 Николай, класс! Отличный компонент. Вопрос: что будет если вручную очистить кеш сайта? Данные из компонента удалятся? Новые дополнения и их версии / [FormWatcher] - Отслеживание брошенных форм 14 0
06 декабря 2018, 18:58 Андрей, отличная работа! Класс! Еще можно добавить вывод отзывов для сотрудника. Есть один салон красоты – мы там как раз из yClients отзывы подтягивали. Очень удобно. Новые дополнения и их версии / yClients + MODX - синхронизация CRM 16 0
28 ноября 2018, 15:40 Еху! Знакомый компонент!) Новые дополнения и их версии / [mspRfiBank] Оплата в miniShop2 через РФИ Банк 2 +1
27 ноября 2018, 18:21 Была проблема с выводом опций в листинге товаров. Они через раз грузились. Набросал свой сниппет: <?php $options = $modx->resource->getTVvalue('categoryTplOpitions'); if (!$options && $source) { $parent = $modx->getObject('modResource',$source); $options = $parent->getTVValue('categoryTplOpitions'); } if(!$product || !$options) { return; } $result = '<ul class="category-product-main-list w-list-unstyled">'; $options_arr = explode(',',$options); if(($key = array_search('vendor',$options_arr)) !== false){ unset($options_arr[$key]); if ($data = $modx->getObject('msProductData', $product)) { $productObj = $data->getOne('Product'); $vendor = $productObj->getOne('Vendor'); if ($vendor) { $result .= '<li class="category-product-main-li">Производитель: <span class="category-product-mail-li-span">'.$vendor->get('name').'</span></li>'; } } } $options_str = '"'.implode('","',$options_arr).'"'; if (implode('","',$options_arr)) { $query = $modx->newQuery('msProductOption'); $query->leftJoin('msOption','msOption',array("msOption.key = msProductOption.key")); $query->select(array( 'msProductOption.key as option_key', 'msProductOption.value as value', 'msProductOption.product_id as product_id', 'msOption.id as option_id', 'msOption.caption as caption', 'msOption.description as description', 'msOption.measure_unit as measure_unit' )); $query->where(array( 'product_id'=>$product, 'msProductOption.key:IN' => $options_arr, )); $query->sortby('FIELD(option_key,'.$options_str.')'); $items = $modx->getCollection('msProductOption',$query); $arr=[]; foreach ($items as $item) { $caption = $item->get('description'); if (!$caption) { $caption = $item->get('caption'); } if (array_key_exists ($caption , $arr )) { $key = $arr[$caption]; $key .= ', '.$item->get('value'); $arr[$caption]=$key; } else { if ($item->get('measure_unit')) { $arr[$caption]=$item->get('value').' '.$item->get('measure_unit'); } else { $arr[$caption]=$item->get('value'); } } } foreach ($arr as $key=>$value) { $result .= '<li class="category-product-main-li">'.$key.': <span class="category-product-mail-li-span">'.$value.'</span></li>'; } } $result .='</ul>'; return $result;И в чанке товара соответственно: {$_modx->runSnippet('!productOptions',[ 'product' => $id 'source' => $_modx->resource.categorySource ])}$_modx->resource.categorySource – это id категории, откуда опции подтягиваем. В этом проекте так надо было. Знаю, что html в сниппеты – не кошерно. Тогда не знал) Можете под себя поднастроить. Вопросы / Неправильная работа сниппета msProductOptions 7 0
14 ноября 2018, 22:00 Можно реализовать на miniShop2 + mSearch2 Товары – резюме и вакансии. Отлично получится. Вопросы / Сайт поиска работы на MODx 12 0
13 ноября 2018, 21:12 У меня такое было, когда с самописными планинами перемудришь. Попробуйте отключать разные плагины (MODX) и посмотреть: сохраняется ли проблема. Вопросы / {Решено}Бесконечное сохранение 3 0
31 октября 2018, 16:23 {if $id|resource:"published"}<a href="{$id|url}">{$pagetitle}</a>{else}<span>{$pagetitle}</span>{/if}И параметр showUnpublished выставить на 1 в вызове pdoResources Вопросы / Текст становится ссылкой при условии заполненного поля в ресурсе на который должна вести ссылка 6 +1
31 октября 2018, 11:14 Самое на поверхности это вызвать pdoResources c 'limit' => 0, 'sortby' => 'RAND()' и 'returnIds' => true. Записать результат работы в переменную и её указать в 'resources' для pdoPage Либо да, писать сниппет с управляемой рандомной сортировкой, что ли) Вопросы / pdoresources sort random в 7 0
29 октября 2018, 17:01 На моих сайтах «из коробки» работает без чувствительности к регистру. Т.е. результаты для «пОдБор» и «подбор», например, будут одни и те же. Вопросы / Регистр при поиске в [[mSearch2]] 1 0
28 октября 2018, 12:46 Павел, Ура! Мега-функция! Благодарю! Новые дополнения и их версии / [tvSuperSelect] 1.3.0 Привет, MIGX! 19 0
Возможно ли реализовать возможность предоплаты за доставку на сайте? Так ради этого мне и нужно это все, чтобы клиент платил сразу при оформлении заказа, чтобы избавить себя от мусорных заявок (когда человек оставляет заявку, а предоплату делать не ...
Редизайн сообщества На больших экранах основной текст статьи я бы сделал 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... Да, планируется. Даже чуть больше, чем просто бонусная система)
Нужно перезаписать ExtJS-компонент miniShop2.tree.Categories.
По шагам:
Вопрос: что будет если вручную очистить кеш сайта? Данные из компонента удалятся?
Еще можно добавить вывод отзывов для сотрудника. Есть один салон красоты – мы там как раз из yClients отзывы подтягивали. Очень удобно.
И в чанке товара соответственно:
– это id категории, откуда опции подтягиваем. В этом проекте так надо было.
Знаю, что html в сниппеты – не кошерно. Тогда не знал)
Можете под себя поднастроить.
Товары – резюме и вакансии. Отлично получится.
Либо да, писать сниппет с управляемой рандомной сортировкой, что ли)
Т.е. результаты для «пОдБор» и «подбор», например, будут одни и те же.
Мега-функция! Благодарю!