[miniShop2 4.0.0 - alpha] - анонс обновления
Внезапно, даже для себя, без громких анонсов и обсуждений команда проекта miniShop пришла к необходимости и возможности выпуска новой мажорной версии любимого компонента.
Представляю вашему вниманию анонс miniShop2 версии 4.0.0 для MODX2
К нам присоединяется все больше свободных рук и давно поставленные задачи находят исполнителей! Так получается что в miniShop2 у ребят больше опыта (логично правда?), больше скопившихся готовых решений, больше желания что-то улучшить. @Артур Шевченко предложил взять на себя разработку современного комплекта JS скриптов, на замену старенького родного набора. Это давно запланированная разработка, к которой никак не получалось приступить. Кроме того она будет актуальной и для MODX3
По честному версионированию SemVer смена технологий ведет к мажорному обновлению, меняет основную версию компонента. Раз уж пошло такое веселье — то появилась возможность внедрить и другие изменения, из числа тех, что меняют основные механизмы работы, ломают совместимость.
Некоторые пункты уже реализованы, часть в работе, часть запланирована. О готовности к тестированию будет отдельная статья.
1. Новый комплект JS скриптов. Никакого jQuery. Только ванильный JavaScript версии ES6. Подключаемые независимые модули Корзины, Заказа, Уведомлений. Нативные события, поддержка колбэков. Еще больше свободы расширения, еще больше скорости. Больше информации здесь.
2. Больше не будет скриптов фотогалереи. Мы избавились от плагина fotorama, который всегда был в комплекте. Его все равно никто не использует. Плагины к верстке должны подключаться отдельно от компонента.
3. Наконец появится полноценная мини-корзина, а также сильно обновится логика работы с корзиной вообще. Теперь корзина будет перезаписываться на лету, без перезагрузки страницы.
4. Новый функционал — изменение опций внутри корзины.
5. Улучшенные возможности для работы через REST API с другого домена, из приложения, вне сессии.
6. Использование статусов становится более гибким. На сегодня базовые статусы заказов крепко вшиты в функционал miniShop2. К примеру, нельзя указать какой статус будет присваиваться заказу на старте. В логику просто забит статус с ID 1. Все платежные системы после оплаты устанавливают статус с ID 2 — и нельзя выбрать другой.
7. Удаляем старые контроллеры-хэндлеры, сейчас помеченные устаревшими. К примеру файл core/components/minishop2/model/minishop2/mscarthandler.class.php. Подобные файлы с версии 3.0 перенесены в отдельный каталог. На их месте были оставлены ссылки-заглушки. с вот таким содержимым.
В анонсированном обновлении эти заглушки будут удалены.
8. Создание нового заказа из админки
9. Меняем схему взаимодействия объекта Заказа msOrder и АдресаЗаказа msOrderAddress.
Сейчас это независимые объекты. После обновления Адрес станет зависимым от Заказа объектом, дополняющим его. При удалении заказа, будет удаляться и адрес. Поле msOrder.address — будет удалено. Связь таблиц будет осуществляться через поле msOrderAddress.order_id
10. Новая сущность АдресКлиента. Реализуем полноценную возможность клиенту сохранять собственные адреса, выбирать их из списка при оформлении следующего заказа и копировать существующий адрес в Заказ. Такая задумка архитектурно была в miniShop2 изначально. Но почему-то не было ни интерфейса, ни реализации.
Не основную, но все равно важную роль играет финансовая поддержка сообщества. Больше ваша поддержка — больше времени получается выделить на решение задач.
В этом месяце мы собрали рекордную сумму сборов и смогли сразу же показать результат. Призываю всех к посильной помощи. Вместе мы сделаем MiniShop еще лучше!
Развитие MiniShop происходит исключительно благодаря Вам друзья!
Финансовая поддержка с вашей стороны, позволяет выделять больше времени на развитие сообщества и обновлять наши проекты, которые в свою очередь приносят пользу и вам.
Поддержать нас можно, используя следующие каналы для доната:
Огромное спасибо, всем кто поддерживает!
Представляю вашему вниманию анонс miniShop2 версии 4.0.0 для MODX2
Откуда вообще взялся новый релиз?
Вообще-то первоначальные планы и график разработки был связан с анонсированным ранее MiniShop3 для MODX3.К нам присоединяется все больше свободных рук и давно поставленные задачи находят исполнителей! Так получается что в miniShop2 у ребят больше опыта (логично правда?), больше скопившихся готовых решений, больше желания что-то улучшить. @Артур Шевченко предложил взять на себя разработку современного комплекта JS скриптов, на замену старенького родного набора. Это давно запланированная разработка, к которой никак не получалось приступить. Кроме того она будет актуальной и для MODX3
По честному версионированию SemVer смена технологий ведет к мажорному обновлению, меняет основную версию компонента. Раз уж пошло такое веселье — то появилась возможность внедрить и другие изменения, из числа тех, что меняют основные механизмы работы, ломают совместимость.
Список запланированных обновлений
Сразу уточню, что сейчас идет активная работа, но еще не все сделано и готово даже для тестирования.Некоторые пункты уже реализованы, часть в работе, часть запланирована. О готовности к тестированию будет отдельная статья.
1. Новый комплект JS скриптов. Никакого jQuery. Только ванильный JavaScript версии ES6. Подключаемые независимые модули Корзины, Заказа, Уведомлений. Нативные события, поддержка колбэков. Еще больше свободы расширения, еще больше скорости. Больше информации здесь.
2. Больше не будет скриптов фотогалереи. Мы избавились от плагина fotorama, который всегда был в комплекте. Его все равно никто не использует. Плагины к верстке должны подключаться отдельно от компонента.
3. Наконец появится полноценная мини-корзина, а также сильно обновится логика работы с корзиной вообще. Теперь корзина будет перезаписываться на лету, без перезагрузки страницы.
4. Новый функционал — изменение опций внутри корзины.
5. Улучшенные возможности для работы через REST API с другого домена, из приложения, вне сессии.
6. Использование статусов становится более гибким. На сегодня базовые статусы заказов крепко вшиты в функционал miniShop2. К примеру, нельзя указать какой статус будет присваиваться заказу на старте. В логику просто забит статус с ID 1. Все платежные системы после оплаты устанавливают статус с ID 2 — и нельзя выбрать другой.
7. Удаляем старые контроллеры-хэндлеры, сейчас помеченные устаревшими. К примеру файл core/components/minishop2/model/minishop2/mscarthandler.class.php. Подобные файлы с версии 3.0 перенесены в отдельный каталог. На их месте были оставлены ссылки-заглушки. с вот таким содержимым.
if (!empty($this->modx->getOption('log_deprecated'))) {
$this->modx->log(
xPDO::LOG_LEVEL_ERROR,
'Deprecated: use handlers from catalog core/components/minishop2/handlers/'
);
}
require_once dirname(__FILE__, 3) . '/handlers/mscarthandler.class.php'; В анонсированном обновлении эти заглушки будут удалены.
8. Создание нового заказа из админки
9. Меняем схему взаимодействия объекта Заказа msOrder и АдресаЗаказа msOrderAddress.
Сейчас это независимые объекты. После обновления Адрес станет зависимым от Заказа объектом, дополняющим его. При удалении заказа, будет удаляться и адрес. Поле msOrder.address — будет удалено. Связь таблиц будет осуществляться через поле msOrderAddress.order_id
10. Новая сущность АдресКлиента. Реализуем полноценную возможность клиенту сохранять собственные адреса, выбирать их из списка при оформлении следующего заказа и копировать существующий адрес в Заказ. Такая задумка архитектурно была в miniShop2 изначально. Но почему-то не было ни интерфейса, ни реализации.
Еще раз о насущном
Как видите список изменений достаточно обширный. Многое из этого было сто раз обсуждено и спроектировано, но стало реально только сейчас и только благодаря вам — нашим спонсорам!Не основную, но все равно важную роль играет финансовая поддержка сообщества. Больше ваша поддержка — больше времени получается выделить на решение задач.
В этом месяце мы собрали рекордную сумму сборов и смогли сразу же показать результат. Призываю всех к посильной помощи. Вместе мы сделаем MiniShop еще лучше!
Развитие MiniShop происходит исключительно благодаря Вам друзья!
Финансовая поддержка с вашей стороны, позволяет выделять больше времени на развитие сообщества и обновлять наши проекты, которые в свою очередь приносят пользу и вам.
Поддержать нас можно, используя следующие каналы для доната:
Огромное спасибо, всем кто поддерживает!
Комментарии: 18
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Подскажите, в таком случае какую галерею использовать? Чтобы было современно, модно, молодёжно))
Я например фанси бокс с owl или swiper.
От слика я ушел ТК подглючивала на определенных моментах которые были критичны.
Надеюсь понятно написал для тех кто в курсе как mFilter2 работает.
Сейчас код вне зоны доступа :-). Завтра скину
А вот прокешированный mFilter2 на этом же каталоге при загрузке из кеша массива ids ресурсов тратит 1.7866640: Total time. И при выборе какого-то фильтра делает suggestions 25с.
mapFilter:
mFilter2:
То есть mapFilter работает все таки быстрее mFilter2. И имеет смысл его доделывать. То есть, я не буду выкладывать код. В течении 2-3 месяцев доделаю и буду продовать :-).
пс. Почему-то mFilter2 ошибочно считает suggestions. Для женщин он посчитал 31 кольцо, а на самом деле их 4082.
пс2.
На самом деле, если сделали фильтры как в mFilter2, то suggestions уже просто посчитать. В mFilter2 это 100 строк кода всего.
Вообще участие в разработке Минишопа меня не сильно интересует. Он меня и в теущем виде устраивает, но вот фильтры для Минишопа интересуют. С ними проблемы есть.
mSearch2 платный компонент и дорабатывать его, чтоб деньги шли левому дяде меня обламывает :-).
Думаю, что участие в разработке бесплатных фильтров для Минишопа, мне интересно. Есть только одно препятствие. Я, обычно, пишу на jQuery. И на ванильный JS не спешу переходить. На jQuery удобней писать и есть мого примеров в интернете. Но если перед глазами будут лучшие примеры кода на ванильном JS, то писать на нем, конечно, смогу.
Примете в комманду? :-)