Для разработчиков
Почему AjaxForm использует сессии?
Всем привет, давно не виделись!
Переодически почитываю новости на сайте и вот увидел ветку комментариев про хранение данных в сессии.
Казалось бы, совершенно заслуженный камень в мой огород, как автора дополнения. Зачем использовать сессии для ajax сниппетов, ведь сама по себе эта технология сессий не требует? Так-то оно так, но в мире MODX всё несколько сложнее.
Переодически почитываю новости на сайте и вот увидел ветку комментариев про хранение данных в сессии.
Казалось бы, совершенно заслуженный камень в мой огород, как автора дополнения. Зачем использовать сессии для ajax сниппетов, ведь сама по себе эта технология сессий не требует? Так-то оно так, но в мире MODX всё несколько сложнее.
Поиск источника ошибки Instantiated a derived class
Всем привет!
На одном из сайтов стала появляться ошибка следующего содержания:
которая забивала Журнал ошибок за 2-а дня на 60 мб.
Поиск источника по БД, через сниппеты, через Batcher и другие способы не принесли результата.
На одном из сайтов стала появляться ошибка следующего содержания:
Instantiated a derived class CollectionContainer that is not a subclass of the requested class ArticlesContainer
которая забивала Журнал ошибок за 2-а дня на 60 мб.
Поиск источника по БД, через сниппеты, через Batcher и другие способы не принесли результата.
Как я написал YandexMarket2 на Vue.js
Привет, сообщество!
Вчера опубликовал большое обновление компонента YandexMarket2 и, наконец, могу рассказать о технических подробностях, которые анонсировал ещё здесь.
Серии уроков не будет — уж слишком долго пишу тексты.
Так вышло, что я уже больше двух лет активно не разрабатывал сайты на MODX, позабыл Ext JS, быстро привык к Vue.js на фронте, к PHP 7+ с автозагрузкой классов и захотел привнести это в нашу систему. Изначально планировал сделать компонент со слабой связанностью с MODX, чтобы можно было легко портировать на MODX3, а то и на другие системы. Скажу сразу: внедрить всё не удалось, а то бы до сих дорабатывал первую версию.
Заметкой хочу показать процесс и удобство разработки компонента, а может и подтолкнуть кого-то ещё написать компонент с интерфейсом на Vue.js, а то и полноценную админку для MODX4 (шутка. или нет :)
Вчера опубликовал большое обновление компонента YandexMarket2 и, наконец, могу рассказать о технических подробностях, которые анонсировал ещё здесь.
Серии уроков не будет — уж слишком долго пишу тексты.
Так вышло, что я уже больше двух лет активно не разрабатывал сайты на MODX, позабыл Ext JS, быстро привык к Vue.js на фронте, к PHP 7+ с автозагрузкой классов и захотел привнести это в нашу систему. Изначально планировал сделать компонент со слабой связанностью с MODX, чтобы можно было легко портировать на MODX3, а то и на другие системы. Скажу сразу: внедрить всё не удалось, а то бы до сих дорабатывал первую версию.
Заметкой хочу показать процесс и удобство разработки компонента, а может и подтолкнуть кого-то ещё написать компонент с интерфейсом на Vue.js, а то и полноценную админку для MODX4 (шутка. или нет :)
[ИНТЕРЕСНО] Server-Sent Events - Уведомления с сервера в браузер в реальном времени
Всем привет! Искал простой способ отправлять уведомления о смене статуса заказа в браузер пользователя. Из вариантов были websocket и сторонние сервисы push-уведомлений. С websocket я разобраться не смог, пробовал запустить workerman на shared-хостинге, но не вышло. Сторонние сервисы вроде sendpulse или comet-сервера не устраивают, потому что они сторонние, их оставлю на крайний случай.
И совершенно случайно я наткнулся на Server-Sent Events. Всё с ними хорошо, кроме одного, опытным путём я понял, что он должен быть запущен всегда, т.е. нельзя запустить его из другого скрипта и передать параметры. Или можно, если кто-то знает как, напишите в комментариях.
Так или иначе я его для своих задач приспособил. Вопрос такой: насколько это будет нагружать сервер и, если никто не знает, то подскажите как можно провести тест под нагрузкой? Предполагается от 1 до 5 тысяч клиентов одновременно.
И совершенно случайно я наткнулся на Server-Sent Events. Всё с ними хорошо, кроме одного, опытным путём я понял, что он должен быть запущен всегда, т.е. нельзя запустить его из другого скрипта и передать параметры. Или можно, если кто-то знает как, напишите в комментариях.
Так или иначе я его для своих задач приспособил. Вопрос такой: насколько это будет нагружать сервер и, если никто не знает, то подскажите как можно провести тест под нагрузкой? Предполагается от 1 до 5 тысяч клиентов одновременно.
Альфа релиз альтернативной админки для MODX
Всем привет!
В продолжение недавней дискуссии публикую то, что удалось сделать за два дня (точнее за 23 часа).

В продолжение недавней дискуссии публикую то, что удалось сделать за два дня (точнее за 23 часа).

Помогите протестировать PR для ускорения выпуска Revolution 3.0
MODX 3 приближается к замораживанию функции перед бета-циклом и последующим релизом. Так как нам нужна максимально возможная помощь в тестировании и проверке ключевых проблем и Pull Requests («PRs»), мы создали это учебное пособие по подходу для тех, кто не привык жить в командной строке и работать с git'ом каждый день.
В настоящее время существует более двух десятков PR, которые должны быть объединены перед окончательным альфа-релизом.
Во время альфа версии, вещи, которые нарушают обратную совместимость, являются кандидатами для включения в релиз MODX 3.0. Однако, во время предстоящей бета-версии, больше никаких изменений, нарушающих совместимость, приниматься не будут. Бета-версия предназначена для шлифовки вещей и работы над тем, чтобы как можно больше дополнений работали без рефакторинга. Многие уже работают.
В настоящее время существует более двух десятков PR, которые должны быть объединены перед окончательным альфа-релизом.
Во время альфа версии, вещи, которые нарушают обратную совместимость, являются кандидатами для включения в релиз MODX 3.0. Однако, во время предстоящей бета-версии, больше никаких изменений, нарушающих совместимость, приниматься не будут. Бета-версия предназначена для шлифовки вещей и работы над тем, чтобы как можно больше дополнений работали без рефакторинга. Многие уже работают.
[СДЕЛАЙ САМ] Поиск на сайте по-быстрому
ВАЖНО!!!
Я знаю, что есть два отличных компонента для организации поиска по сайту это SimpleSearch, который по-моему не работает с чанками на fenom, и mSearch2, который платный и большой. В связи с этим я решил написать свой вариант поиска — максимально простой и понятный, да неуниверсальный, но позволяющий по нескольким ключевым словам найти нужный ресурс. По сути это форма. которая через ajax отправляется на сервер, где формируется sql-запрос в БД и результат возвращается на фронт. Итак перейдём к коду.
Данное решение не является учебным и рекомендуется к использованию только на собственных проектах, с целью освоения работы с api modx. Для изучения лучших практик, анализируйте код дополнений с сайта https://modstore.pro/
Я знаю, что есть два отличных компонента для организации поиска по сайту это SimpleSearch, который по-моему не работает с чанками на fenom, и mSearch2, который платный и большой. В связи с этим я решил написать свой вариант поиска — максимально простой и понятный, да неуниверсальный, но позволяющий по нескольким ключевым словам найти нужный ресурс. По сути это форма. которая через ajax отправляется на сервер, где формируется sql-запрос в БД и результат возвращается на фронт. Итак перейдём к коду.
msPromoCode, date.strftime is not a function
После обновлений пакетов перестал отображаться список промокодов в компоненте msPromoCode.
Ошибка в консоли:
Судя по всему это отголоски следующей проблемы:
modx.pro/help/11562
github.com/bezumkin/Tickets/pull/169
github.com/Ibochkarev/miniShop2/issues/474
github.com/Ibochkarev/miniShop2/commit/f3b36a308d76b979982cc9fdc47fb420fb035bb4
Возможное решение — обновить файл core/components/mspromocode/controllers/home.class.php следующей строкой в конце тела функции loadCustomCssJs():
Ошибка в консоли:
ms2.utils.js:9 Uncaught TypeError: date.strftime is not a function
at constructor.miniShop2.utils.formatDate [as renderer] (ms2.utils.js:9)
.....
Установлены modx 2.8.1, minishop2 2.7.0, msPromoCode 1.4.4-plСудя по всему это отголоски следующей проблемы:
modx.pro/help/11562
github.com/bezumkin/Tickets/pull/169
github.com/Ibochkarev/miniShop2/issues/474
github.com/Ibochkarev/miniShop2/commit/f3b36a308d76b979982cc9fdc47fb420fb035bb4
Возможное решение — обновить файл core/components/mspromocode/controllers/home.class.php следующей строкой в конце тела функции loadCustomCssJs():
$this->addLastJavascript($this->miniShop2->config['jsUrl'] . 'mgr/misc/strftime-min-1.3.js');
@Павел Гвоздь вам на заметку. Чего не хватает в miniShop2?
Всем привет!
Ребята, ответьте на пару вопросов в комментариях касаемо minishop2.
Что не хватает в minishop2, чтобы вы хотели улучшить, что нужно исправить.
Возможно получится сделать срез ожиданий, сделать сбор средств на оплату разработчиков и улучшить продукт.
Заранее спасибо за обратную связь!!
Отправить информацию об ошибке/улучшению можно тут
Отправить PR можно тут
UPDATE:
Всем спасибо, за ответы. В ближайшее время выйдет 2.6.0, а далее будем работать с хотелками и исправлениями.
Покупка на ultron.pro! Не забудьте обновить ядро и компонент Gallery
Пару месяцев назад была куплена сборка на сайте ultron.pro для знакомого который открыл кафе.
Все было хорошо, пока сегодня не зашел на сайт и не обнаружил что он взломан.
Ядро было обновлено сразу до версии 2.7.3-pl. Но компоненты не стал обновлять.
Дак вот если собираетесь покупать не забудьте сразу обновить компонент Gallery, так как там стоит 1.7.0-pl который был взломан в 2018 году.
Почему то разработчик не позаботился проверить свои сборки на присутствие этого компонента, хотя прошло уже 2 года.
Собственно ответ тех поддержки был: сам дурак) А то что сборка с дырками по умолчанию продается, это нормально.
Да фиг с ним с моим сайтом. Но ожидать того что сборка по умолчанию пробита, как то даже в мысли не приходило. Советуешь еще потом зайти на этот сайт подобрать какой то шаблон себе. В итоге получаешь старую сборку, которая в принципе может не работать после обновления всех компонентов.
Вообще чтобы долго не замарачиваться проще скачать сайт целиком к себе на хостинг через команду:
Все было хорошо, пока сегодня не зашел на сайт и не обнаружил что он взломан.
Ядро было обновлено сразу до версии 2.7.3-pl. Но компоненты не стал обновлять.
Дак вот если собираетесь покупать не забудьте сразу обновить компонент Gallery, так как там стоит 1.7.0-pl который был взломан в 2018 году.
Почему то разработчик не позаботился проверить свои сборки на присутствие этого компонента, хотя прошло уже 2 года.
Собственно ответ тех поддержки был: сам дурак) А то что сборка с дырками по умолчанию продается, это нормально.
Да фиг с ним с моим сайтом. Но ожидать того что сборка по умолчанию пробита, как то даже в мысли не приходило. Советуешь еще потом зайти на этот сайт подобрать какой то шаблон себе. В итоге получаешь старую сборку, которая в принципе может не работать после обновления всех компонентов.
Вообще чтобы долго не замарачиваться проще скачать сайт целиком к себе на хостинг через команду:
wget -r -k -l 7 -p -E -nc http://site.com/
и посадить его на свою сборку.