Павел Гвоздь · 11 октября 2020, 10:04 $id = 5268; $modx->runProcessor('resource/delete', [ 'id' => $id, ]); $modx->runProcessor('resource/trash/purge', [ 'ids' => $id, ]); Вопросы / Удаление ресурса через плагин 4 0 1
Володя · 07 ноября 2017, 15:32 <input type="checkbox" data-toggle="checkbox" onchange="this.checked ? $(this.form).submit() : false;"> Вопросы / Как сделать кнопку В корзину в виде чекбокса 4 +3 2
Михаил · 12 октября 2017, 10:17 Как сделал я. В чанк tpl.Office.auth.login добавил (ссылку на ресурс поменять): <div class="col-md-8"> <label for="office-auth-register-rules" class="col-md-3 control-label"> <input type="checkbox" name="rules" class="form-control" id="office-register-form-rules" value="yes" style="width: auto;"/> Я <a href="ссылка на ресурс" target="blank">согласен на обработку</a> персональных данных.</label> </div>Создал плагин с именем chekPersDannie (имя не важно), с таким кодом: <?php if ($modx->context->key != 'mgr') { switch ($modx->event->name) { case 'OnBeforeUserFormSave': if (empty($_POST['rules'])) { $modx->event->output('Для продолжения регистрации Вы должны дать разрешение на обработку Ваших персональных данных'); } break; } }и у этого плагина, во вкладке Системные события поставить галку на событие OnBeforeUserFormSave. Проверяем, должно работать. Вопросы / Office и пользовательское соглашение 4 +1 2
Василий Наумкин · 13 июля 2017, 11:46 Гораздо проще и лучше просто вызвать свой скрипт после default.js от ms2 и перезаписать там объект miniShop2.Message: miniShop2.Message = { success: function() {}, error: function() {}, info: function() {}, }; В modstore.pro, например, сделано вообще вот так: miniShop2.Message = App.utils.Message;Поэтому все уведомления от ms2 работают через общую систему уведомлений сайта. Вопросы / [Решено] Изменить jGrowl-уведомления в minishop2 23 +5 6
Илья Уткин · 14 марта 2016, 17:06 Немного дополнил плагин, так как не всегда $introtext = $content if ($modx->event->name == "OnDocFormSave") { $introtext = $resource->get('introtext'); $generateIntrotext = $resource->getIntroText($resource->get('content'), false); if (empty($resource->getProperty('disable_jevix'))) { $generateIntrotext = $resource->Jevix($generateIntrotext); } if ($introtext == $generateIntrotext) { $resource->set('introtext', ''); $resource->save(); } } Вопросы / Tickets introtext и Jevix 21 0 2
Алексей Шумаев · 01 марта 2016, 02:03 Итак, временное решение — может кому пригодиться. 1. Запуск (Fenom) {$_modx->runSnippet('mSearchForm', [ 'pageId' => 5, 'element' => 'pdoResources', 'limit' => 15, 'tpl' => 'tpl.mSearch2.ac', 'class' => 'modResource' ])} 2. Результат работы mSearchForm в tpl.mSearch2.ac отдаётся сниппету prepareSearchResult: <?php $out = ''; $tpls = array ( 'msCategory' => 'tpl.mSearch2Category.ac', 'modDocument' => 'tpl.mSearch2Document.ac', 'msProduct' => 'tpl.mSearch2Product.ac' ); if(isset($class_key) && isset($id)) { $pdo = $modx->getService('pdoTools'); $tpl = $tpls[$class_key]; $placeholders['pagetitle'] = $pagetitle; $placeholders['description'] = $description; if($class_key == 'msProduct') { $product = $modx->getObject('msProduct', $id); $placeholders['price'] = $product->get('price'); $thumb = $product->get('thumb'); if(empty($thumb)) { $placeholders['thumb'] = '/assets/templates/img/no-photo.png'; } else { $placeholders['thumb'] = $product->get('thumb'); } } $out = $pdo->getChunk($tpl, $placeholders); } return $out; 3. Пример куска чанка для продукта (с использованием Fenom): <div class="img-wrapp"> <img src="{$thumb}" alt="{$pagetitle}"> </div> <div class="search-body"> <span class="item-name">{$pagetitle}</span> {if $decription?} <span class="item-descript">{$description}</span> {/if} </div> <div class="item-price">{$price}<small> руб.</small></div> Вопросы / Необходима помощь в кастомизации mSearch2 9 +1 2
Павел Гвоздь · 16 февраля 2016, 18:59 Скрипт мигрирует с ТВ типа «Тег» на ТВ типа «tvSuperSelect»: <?php $tv_tag = 18; // id тв поля с типом "Тег" $tv_tss = 17; // id тв поля с типом "tvSuperSelect" $modx->addPackage('tvsuperselect', MODX_CORE_PATH .'components/tvsuperselect/model/'); $objs = $modx->getIterator('modTemplateVarResource', array('tmplvarid' => $tv_tag)); foreach ($objs as $obj) { $values = explode(',', $obj->value); foreach ($values as $value) { $where = array( 'resource_id' => $obj->contentid, 'tv_id' => $tv_tss, 'value' => $value, ); if (!$modx->getCount('tvssOption', $where)) { $new = $modx->newObject('tvssOption'); $new->fromArray($where); $new->save(); unset($new); } $where = array( 'contentid' => $obj->contentid, 'tmplvarid' => $tv_tss, ); if ($old = $modx->getObject('modTemplateVarResource', $where)) { $old_values = $modx->fromJSON($old->value); $old_values[] = $value; $old->set('value', $modx->toJSON(array_unique($old_values))); $old->save(); } else { $new = $modx->newObject('modTemplateVarResource'); $new->fromArray($where); $new->save(); unset($new); } } }Запускать в пакете "Console" Новые дополнения и их версии / [tvSuperSelect] Тип TV: автозаполняемый список из ms2, для реализации тегов 125 0 3
Сергей Шлоков · 12 января 2016, 08:46 В чем проблема? Сделайте плагин на событие OnDocFormSave switch ($modx->event->name) { case 'OnDocFormSave': if ($resource instanceof Ticket) { $contexts = array(); $query = $modx->newQuery('modContext'); $query->select($modx->escape('key')); if ($query->prepare() && $query->stmt->execute()) { $contexts = $query->stmt->fetchAll(PDO::FETCH_COLUMN); } $modx->cacheManager->autoPublish(array_diff($contexts, array('mgr'))); } break; } Вопросы / Проблема с отложенной публикацией Tickets 28 +2 2
Возможно ли реализовать возможность предоплаты за доставку на сайте? У меня Робокасса, у них вроде есть docs.robokassa.ru/ru/iframe
Редизайн сообщества На больших экранах основной текст статьи я бы сделал 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... Да, планируется. Даже чуть больше, чем просто бонусная система)
В чанк tpl.Office.auth.login добавил (ссылку на ресурс поменять):
Создал плагин с именем chekPersDannie (имя не важно), с таким кодом:
и у этого плагина, во вкладке Системные события поставить галку на событие OnBeforeUserFormSave.
Проверяем, должно работать.
В modstore.pro, например, сделано вообще вот так:
Поэтому все уведомления от ms2 работают через общую систему уведомлений сайта.
1. Запуск (Fenom)
2. Результат работы mSearchForm в tpl.mSearch2.ac отдаётся сниппету prepareSearchResult:
3. Пример куска чанка для продукта (с использованием Fenom):
Запускать в пакете "Console"