19 февраля 2015, 06:58 location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|bmp)$ { //выбирать желаемые форматы try_files $uri $uri/ @rewrite; access_log off; expires 10d; // время хранения break; } Вопросы / Nginx + rewrite + Expires headers 1 0
19 февраля 2015, 06:54 Это не нормально. max_user_connections = лимит одновременного подключения к бд. Вылечить — для начала оптимизировать сниппеты и минимизировать (сгруппировать) запросы к бд. Вопросы / max_user_connections превысил лимиты ( 1 0
19 февраля 2015, 06:52 Добрый. Вы имеете ввиду с фронтэнда (в админке есть соответствующие переключатели)? Тогда можно реализовать так (привожу простой пример-портянку, по-чистому выйдет довольно много изменений): а) создаем 2 tv и присваиваем нужным шаблонам (их можно скрыть в админке) — ticket_pub_date и ticket_unpub_date б) подключаем тв в вызов TicketForm и создаем необходимые формы в шаблоне (инпуты для даты, можно навесить маски с jquery, например datetimepicker) в) создаете плагин на событие OnDocFormSave, перехватывающий значение полей и вставляющих их в pub_date и unpub_date: <?php if ($modx->event->name == 'OnDocFormSave') { $pub_value = $resource->getTVValue('ticket_pub_date'); $unpub_value = $resource->getTVValue('ticket_unpub_date'); if (strlen($pub_value) > 0) { $resource->set('pub_date',$pub_value); } if (strlen($unpub_value) > 0) { $resource->set('unpub_date',$unpub_value); } $resource->save(); } Вопросы / Управление публикацией в Tickets 2 +1 2
19 февраля 2015, 06:37 Шаблон для вывода — в настройках сниппета: &tplFilter.row.tv|твое_тв=`шаблон` Если же логика сортировки своя, то менять и методы фильтрации (http://docs.modx.pro/components/msearch2/extension/filtering-methods) Вопросы / mFilter2 вывод множественного списка 3 0
19 февраля 2015, 06:34 Плагином, скорее всего, на событие OnDocFormSave перехватывать значение, видоизменять и сохранять. Примерно вот так: <?php if ($modx->event->name == 'OnDocFormSave') { $metro = $resource->getTVValue('metro'); if (strlen($metro) > 0) { $newMetroValue = ... //видоизменяешь как тебе необходимо (разбиваешь массив и тд) $resource->setTVValue('metro', $newMetroValue); } $resource->save(); } Вопросы / Tickets - ТВ на основе селекта с мультивыборо 1 0
18 февраля 2015, 20:45 Без конкретного примера — можно только сказать в общих чертах — кэшировать все, что можно +оптимизировать свои пхп-скрипты, чтобы было минимум запросов к бд. Как правило, еще из основных «ошибкок» при написании сайта на модксе — вызов сниппетов в сниппете, излишние вложенности чанков и тд. Т.е. в таких вызовах — писать свои запросы заместо «готовых» решений — и сайт будет летать.) Вопросы / Подходит ли MODx для высоких нагрузок ? 8 0
14 февраля 2015, 17:12 Смотреть при помощи pdoField родительский контейнер определенного уровня от корня и исходя из него плагином прятать поля как вариант? (если у вас 2 категории товаров — гладильная техника и швейная) Вопросы / Разделение полей 6 0
14 февраля 2015, 10:44 Можно реализовать заполнение для товаров со стороны админки при помощи tv, а плагином при сохранении дублировать их в свойства товаров и выводить во фронте уже эти свойства. Вопросы / Разделение полей 6 0
13 февраля 2015, 03:44 Еще можно повесить плагин на событие OnUserFormSave или подобное, чтобы полностью исключить возможность изменения полей до не желаемого уровня (к примеру, допустимые поля в профиле меняются селектами в пределах определенных значений). Вопросы / Запретить сохранение данных в Login 3 0
11 февраля 2015, 17:09 Оптимизация + хорошие характеристики сервера = справится. Вообще, «300-600 тысяч», оторванных от функционала и способах его реализации = нагрузка только на серверную часть. Лучше опишите, какой объем документов/ресурсов на сайте и основные процессы. Вопросы / Подходит ли MODx для высоких нагрузок ? 8 0
11 февраля 2015, 15:26 Попробовал изменить опции меню более «мягким» образом: 1) создаем плагин adminMenuFix и включаем его на событие OnManagerPageBeforeRender: <?php $modx->controller->addHtml('<link rel="stylesheet" type="text/css" media="screen" href="../admin.css" />');2) в корень сайта (или в любое желаемое место, но тогда в пункте 1 исправляем путь) создаем документ admin.css со стилем #modx-navbar li:hover ul.modx-subnav { -webkit-transition-delay: 5s !important; transition-delay: 5s !important; } — меню появляется с указанной задержкой. P.s. данный способ изменяет скорость появления ВСЕХ вертикальных выпадающих табов. Если необходимо изменить скорость у чего-то конкретного — завязывайте стили ксс на уникальных классах/id. Вопросы / Скорость раскрытия верхнего меню в админке. 12 +1
10 февраля 2015, 18:22 Так, эм… вон вверху навигации этого сайта кнопка «хостинг»..) Вопросы / AjaxManager в Modx 2.3.3 10 +2
10 февраля 2015, 17:47 Возникла та же проблема — но только при переходе на версию 2.3.3. Решил заменой хостинга (не реклама, но скорость вышла почти сопоставимая). Ну или как альтернатива — ждать патч на ajaxmanager. Вопросы / AjaxManager в Modx 2.3.3 10 0
10 февраля 2015, 17:35 1. Можно сделать табы сделать на ajax-е (https://modx.pro/development/3139-foundations-of-ajax/) — проблема будет решена де-факто. 2. Глубоко не смотрел, но подозреваю, что дело в якоре Id=«mapexMap». Не знаю точной работы вашего сниппета карт, но, судя по куску: <script type="text/javascript"> ymaps.ready(function(){ mapexMap = new ymaps.Map("mapexMap", { center: [57.886209618522,59.999624185547], zoom: 11 }); mapexMap.setType("yandex#map"); var mapexMapControls = "mapTools".split(','); for(var i = 0; i < mapexMapControls.length; i++){ mapexMap.controls.add(mapexMapControls[i]); } mapexMap.geoObjects.add(new ymaps.Placemark([57.920845758766,60.103013093254], {"iconContent":"\u0412\u0430\u0433\u043e\u043d\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u0435\u0439 12","balloonContentBody":"","balloonContentHeader":"\u0412\u0430\u0433\u043e\u043d\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u0435\u0439 12"}, {"preset":"twirl#blueStretchyIcon"})); mapexMap.geoObjects.add(new ymaps.Placemark([57.872675912701,59.95150535582], {"iconContent":"\u041e\u043a\u0442\u044f\u0431\u0440\u044c\u0441\u043a\u0438\u0439 \u043f\u0440. 22","balloonContentBody":"","balloonContentHeader":"\u041e\u043a\u0442\u044f\u0431\u0440\u044c\u0441\u043a\u0438\u0439 \u043f\u0440. 22"}, {"preset":"twirl#blueStretchyIcon"})); }); </script> — который вызывается у вас 26 раз, то сниппет при помощи скрипта вставляет в контейнер с айди mapexMap модуль карты, но т.к. в html параметр id должен быть уникальным, то из-за специфики javascript'a он находит первое совпадение Id (первый контейнер) и вставляет туда результат. И так 26 раз. Вопросы / mapx2 4 0
07 февраля 2015, 15:25 Не знаю почему, но if($class_key == 'msProduct'){ — значение не цепляет. Помогло только при: if($resource->get('class_key') == 'msProduct'){ Вопросы / Свойства товара miniShop2 для шаблона 12 0
07 февраля 2015, 13:59 Попробовал запустить этот сниппет на modx 2.3.2, вот как вызвалось: (в шаблоне, обязательно ДО вызова pdoResources/getResources или ДО вызова самой переменной в шаблоне): [[!HPCount]](в месте вызова): {%hp-[[+id]]%} — если в шаблоне самого документа, то + меняем на * соответственно. Единственный нюанс — как-то странно кэшировались данные, в результате число просмотров, отличное от 0 появилось не сразу. Вопросы / Не могу настроить работу Hitspage 27 0
06 февраля 2015, 10:04 При экспорте можно выбирать загружаемые таблицы. Хостинг / Правильный хостинг для MODX Revolution 2 488 0
06 февраля 2015, 09:14 Выгружать таблицы частями — не вариант? Хостинг / Правильный хостинг для MODX Revolution 2 488 0
05 февраля 2015, 21:29 А что если пересохранять товар с одним и тем же артикулом — разве не вылезет алерт? Вопросы / РЕШЕНО! Уникальность поля артикул 10 +1
04 февраля 2015, 10:31 Я и не предлагал поменять магазин — этот модуль импорта из CSV, XML, XLS, XLSX универсален для всех ресурсов modx'a. Просто необходимо отредактировать код так, чтобы при импорте создавался/обновлялся товар, а не документ (параметр class_key и, возможно, что-то еще по мелочам — можно сравнить с импортом в minishop из того же csv). Не за что.) Вопросы / SOS! Реализация огромного магазина 13 0
Возможно ли реализовать возможность предоплаты за доставку на сайте? В любом случаем стандартный флоу минишоп2 рассчитан на оплату по ссылке, т.е. чтобы получить информацию об оплате, нужно чтобы заказ существовал. Чтобы сделать иначе, нужно использ...
Редизайн сообщества На больших экранах основной текст статьи я бы сделал 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... Да, планируется. Даже чуть больше, чем просто бонусная система)
max_user_connections = лимит одновременного подключения к бд.
Вылечить — для начала оптимизировать сниппеты и минимизировать (сгруппировать) запросы к бд.
Тогда можно реализовать так (привожу простой пример-портянку, по-чистому выйдет довольно много изменений):
а) создаем 2 tv и присваиваем нужным шаблонам (их можно скрыть в админке) — ticket_pub_date и ticket_unpub_date
б) подключаем тв в вызов TicketForm и создаем необходимые формы в шаблоне (инпуты для даты, можно навесить маски с jquery, например datetimepicker)
в) создаете плагин на событие OnDocFormSave, перехватывающий значение полей и вставляющих их в pub_date и unpub_date:
Если же логика сортировки своя, то менять и методы фильтрации (http://docs.modx.pro/components/msearch2/extension/filtering-methods)
Как правило, еще из основных «ошибкок» при написании сайта на модксе — вызов сниппетов в сниппете, излишние вложенности чанков и тд. Т.е. в таких вызовах — писать свои запросы заместо «готовых» решений — и сайт будет летать.)
Вообще, «300-600 тысяч», оторванных от функционала и способах его реализации = нагрузка только на серверную часть.
Лучше опишите, какой объем документов/ресурсов на сайте и основные процессы.
1) создаем плагин adminMenuFix и включаем его на событие OnManagerPageBeforeRender:
2) в корень сайта (или в любое желаемое место, но тогда в пункте 1 исправляем путь) создаем документ admin.css со стилем
— меню появляется с указанной задержкой.
P.s. данный способ изменяет скорость появления ВСЕХ вертикальных выпадающих табов. Если необходимо изменить скорость у чего-то конкретного — завязывайте стили ксс на уникальных классах/id.
Ну или как альтернатива — ждать патч на ajaxmanager.
2. Глубоко не смотрел, но подозреваю, что дело в якоре Id=«mapexMap». Не знаю точной работы вашего сниппета карт, но, судя по куску:
— который вызывается у вас 26 раз, то сниппет при помощи скрипта вставляет в контейнер с айди mapexMap модуль карты, но т.к. в html параметр id должен быть уникальным, то из-за специфики javascript'a он находит первое совпадение Id (первый контейнер) и вставляет туда результат. И так 26 раз.
— значение не цепляет.
Помогло только при:
(в шаблоне, обязательно ДО вызова pdoResources/getResources или ДО вызова самой переменной в шаблоне):
(в месте вызова):
— если в шаблоне самого документа, то + меняем на * соответственно.
Единственный нюанс — как-то странно кэшировались данные, в результате число просмотров, отличное от 0 появилось не сразу.
Просто необходимо отредактировать код так, чтобы при импорте создавался/обновлялся товар, а не документ (параметр class_key и, возможно, что-то еще по мелочам — можно сравнить с импортом в minishop из того же csv).
Не за что.)