Александр · 12 августа 2016, 19:03 Речь идет видимо о уведомления PNotify которые использую в выше обозначенном пакете. Вам необходимо поменять js компонента который работает с jGrowl. Вы не уточнили компонент, который выводит окошки. Если нужно поменять скрипт для всех событий на сайте связанных с отображением окошек оповещений, то для это нужно проделать операцию описанную ниже для всех компонентов. Принцип работ один и тот-же. На примере компонента miniShop2 скопируйте файл по пути написанному ниже в отдельную папку чтобы не затрагивать исходники минишопа. Пропишите новый путь в системную настройку ms2_frontend_js (данная настройка есть у AjaxForm также и у других стандартных компонентов из modstore) /assets/components/minishop2/js/web/default.js Подключите на сайте: PNotify <script type="text/javascript" src="pnotify.custom.min.js"></script> <link href="pnotify.custom.min.css" media="all" rel="stylesheet" type="text/css" /> Найдите следующий кусок кода в js файле: if (typeof($.fn.jGrowl) != 'function') { $.getScript(miniShop2Config.jsUrl + 'lib/jquery.jgrowl.min.js', function () { miniShop2.Message.initialize(); }); } else { $.jGrowl.defaults.closerTemplate = '<div>[ ' + miniShop2Config.close_all_message + ' ]</div>'; miniShop2.Message.close = function () { $.jGrowl('close'); }; miniShop2.Message.show = function (message, options) { if (message != '') { $.jGrowl(message, options); } } } Удалите следующий код: if (typeof($.fn.jGrowl) != 'function') { $.getScript(miniShop2Config.jsUrl + 'lib/jquery.jgrowl.min.js', function () { miniShop2.Message.initialize(); }); } else { ...... не удаляемое .... } Замените данный код: $.jGrowl.defaults.closerTemplate = '<div>[ ' + miniShop2Config.close_all_message + ' ]</div>'; miniShop2.Message.close = function () { $.jGrowl('close'); }; miniShop2.Message.show = function (message, options) { if (message != '') { $.jGrowl(message, options); } } на это: miniShop2.Message.close = function () { PNotify.removeAll() }; miniShop2.Message.show = function (message, options) { if (message != '') { new PNotify({ title: 'Сообщение', text: message }); } } Данная инструкция условная, не проверялась. Вопросы / Смена уведомлений с jGroul на ModPNotify 2 +5 1
Володя · 05 августа 2016, 22:35 можно добавить так создать плагин на pdoToolsOnFenomInit, в нем добавить модификатор detector <?php switch ($modx->event->name) { case 'pdoToolsOnFenomInit': if (!$fenom = $modx->getOption('fenom', $scriptProperties)) { return; } if (!$MobileDetect = $modx->getService('mobiledetect', 'MobileDetect', MODX_CORE_PATH . 'components/mobiledetect/')) { return; } $key = $MobileDetect->config['force_browser_variable']; $device = !empty($_GET) && array_key_exists($key, $_GET) ? $modx->stripTags($_GET[$key]) : ''; if (empty($device)) { $device = $MobileDetect->getSettings(); } if (empty($device)) { $detector = $MobileDetect->getDetector(); $device = ($detector->isMobile() ? ($detector->isTablet() ? 'tablet' : 'mobile') : 'standard'); $MobileDetect->saveSettings($device); } $fenom->addModifier("detector", function ($value) use ($device) { return $value == $device; }); break; } и теперь в любом месте можно делать так {if 'mobile'|detector} mobile {/if} {if 'tablet'|detector} tablet {/if} {if 'standard'|detector} standard {/if} Вопросы / Fenom + MobileDetect + NGINX + PHP5-FPM = 502 bad gateway 9 +5 21
Олег Бурмака · 27 июля 2016, 11:41 ну дак вылетев из-за большого времени. Как я говорил можно через $modx->getIterator(). Если через твой вариант $q = $modx->newQuery('msProduct'); $q->limit('500','0'); //($limit,$offset) $docs = $modx->getCollection('msProduct',$q); Играйся с limit & offset. Делай частями Вопросы / Обновить все url у товаров 14 +1 1
Володя · 03 января 2016, 22:23 вот так примерно — выбираем id всех товаров — потом создаем им опции — потом добавляем опции цены <?php $msop2 = $modx->getService('msop2', 'msop2', $modx->getOption('msop2_core_path', null, $modx->getOption('core_path') . 'components/msop2/') . 'model/msop2/'); if (!($msop2 instanceof msop2)) return ''; /* массив опций продуктов */ $data = array( 'class_key' => 'msProduct', 'context_key' => 'web', 'size' => array( '100', '200', '300', '400', '500', '600', '700', '800', '900', '1000' ) ); /* массив опций и цен */ $options = array( '100' => 10, '200' => 20, '300' => 30, '400' => 40, '500' => 50, '600' => 60, '700' => 70, '800' => 80, '900' => 90, '1000' => '10' ); $q = $modx->newQuery('msProduct'); $q->where(array('class_key' => 'msProduct')); $q->select('id'); if ($q->prepare() && $q->stmt->execute()) { $ids = $q->stmt->fetchAll(PDO::FETCH_COLUMN); } foreach($ids as $id) { $data['id'] = $id; $modx->error->reset(); $response = $modx->runProcessor('resource/update', $data); if ($response->isError()) { print_r($response->getAllErrors()); continue; } foreach ($options as $value => $price) { $msop = array( 'product_id' => $id, 'operation' => 1, // операция 'option' => 1, // опция size 'value' => $value ); if (!$msop2Price = $modx->getObject('msop2Price', $msop)) { $msop2Price = $modx->newObject('msop2Price'); $msop2Price->fromArray($msop); } $msop2Price->set('price', $price); $msop2Price->save(); } } Новые дополнения и их версии / [msOptionsPrice2] - теперь с весом товаров. 12 +1 1
Abu · 15 ноября 2014, 14:06 755 директории 644 файлы кусок из скриптов Василия echo "CHMOD directories..."; find "/var/www/site/site.com" -type d -exec chmod 0755 '{}' \; echo "CHMOD files..."; find "/var/www/site/site.com" -type f -exec chmod 0644 '{}' \; Вопросы / Права доступа на папки 11 0 1
Василий Наумкин · 27 декабря 2012, 14:55 Да хоть бы код в тег code оформил, хрен с ним, с «пожалуйста». Работает без проблем, но только при одном условии — если вызывается не на странице, ТВ которой он должен обновить. if ($res = $modx->getObject('modResource', 1)) { $res->setTVValue(1, 1); echo $res->getTVValue(1); $res->setTVValue(1, 2); echo $res->getTVValue(1); die; // 12 } А вот так — выдаёт прикольный глюк, очевидно связанный с кэшированием. if ($res = $modx->getObject('modResource', $modx->resource->id)) { $res->setTVValue(1, 1); echo $res->getTVValue(1); $res->setTVValue(1, 2); echo $res->getTVValue(1); die; // 22 }Поэтому, переходим на обычный xPDO if ($tv = $modx->getObject('modTemplateVarResource', array('tmplvarid' => 1, 'contentid' => $modx->resource->id))) { $tv->set('value', 1); echo $tv->get('value'); //$tv->save(); //по желанию $tv->set('value', 2); echo $tv->get('value'); die; // 12 } Почему выходит такая фигня — мне не ведомо, а копать исходники времени нет. Вопросы / Проблема с TV параметрами в MODx 28 0 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...
На примере компонента miniShop2 скопируйте файл по пути написанному ниже в отдельную папку чтобы не затрагивать исходники минишопа. Пропишите новый путь в системную настройку ms2_frontend_js (данная настройка есть у AjaxForm также и у других стандартных компонентов из modstore)
Подключите на сайте: PNotify
Найдите следующий кусок кода в js файле:
Удалите следующий код:
Замените данный код:
на это:
Данная инструкция условная, не проверялась.
создать плагин на pdoToolsOnFenomInit, в нем добавить модификатор detector
и теперь в любом месте можно делать так
— выбираем id всех товаров
— потом создаем им опции
— потом добавляем опции цены
644 файлы
кусок из скриптов Василия
Работает без проблем, но только при одном условии — если вызывается не на странице, ТВ которой он должен обновить.
А вот так — выдаёт прикольный глюк, очевидно связанный с кэшированием.
Поэтому, переходим на обычный xPDO
Почему выходит такая фигня — мне не ведомо, а копать исходники времени нет.