Релиз minishop2 3.0.0 (Для MODX 2). Поддержки MODX3 еще нет.

Представляю вашему вниманию стабильный релиз minishop2 3.0.0.
С сегодняшнего дня — компонент доступен к загрузке по умолчанию в репозитории.

ВНИМАНИЕ — Обновление может сломать ваш сайт.
Прежде чем обновляться подумайте, а нужно ли вам это? Выиграете ли вы от этого?
Постарайтесь протестировать обновление на отдельной копии сайта. Сделайте бэкап.

Список изменений, рекомендации по обновлению были опубликованы ранее в предыдущих анонсах.


Из нового, ранее неозвученного могу отметить следующее.

Добавлена новая системная настройка ms2_register_frontend. Настройка отвечает за отключение принудительного добавления в DOM дерево css и js файлов из комплекта minishop2.
Таким образом вы можете собрать страницу без скриптов и стилей (добавив их в общий котел).
Вообще-то и раньше можно было просто очистить все системные настройки, отвечающие за файлы. Фокус в другом. Теперь можно включать\отключать пополнение DOM дерева на выборочных страницах

Добавлен новый метод registerFrontend() который собственно и управляет загрузкой на страницу файлов стилей и скриптов.

Объясню зачем это нужно и где использовать.

Пример из жизни реального интернет-магазина. На некоторых страницах скрипты минишопа нужны, на некоторых, где нет даже мини-корзины не нужны. Но при стандартном подходе плагин minishop2 загружает скрипты на каждую страницу. Чем замедляет ее.

В последнее время я активно работаю с компонентом ZoomX, который совершенно по другому работает с построением страниц. Каждой страницей можно управлять отдельно, заранее, решая какие данные предоставить странице. В том числе теперь можно управлять и появлением в DOM дереве элементов minishop2.

Ниже простой пример контроллера ZoomX, отвечающего за то, какой функционал будет доступен на странице

namespace Zoomx\Controllers;

use modX;

class PagesController extends Controller
{
    /**
     * @var \miniShop2
     */
    protected $ms2;

    public function __construct(modX $modx)
    {
        parent::__construct($modx);
        //  Если на странице не нужны возможности ms2 - просто убираем эти строки
        $this->ms2 = $this->modx->getService('minishop2');
        $this->ms2->initialize('web');
        $this->ms2->registerFrontend();
    }
}

В классическом MODX управлять загрузкой файлов стилей скриптов можно через плагин.
Сейчас загрузка в плагине на событие OnLoadWebDocument реализована вот так:
$miniShop2 = $modx->getService('miniShop2');
$registerFrontend = $modx->getOption('ms2_register_frontend', null, '1');
if ($miniShop2 && $registerFrontend) {
    $miniShop2->registerFrontend();
}

Этот код можно дополнить переписав логику как угодно.
К примеру проверять шаблон $modx->resource->template и для нужных шаблонов включать (или наоборот отключать пополнение DOM дерева)

Собственно теперь после этого релиза я займусь поддержкой MODX 3.
В планах на данный момент реализовать простейшую совместимость, насколько это возможно.
И далее будет идти работа над отдельной версией компонента minishop3 которая заменит собой minishop2.

По просьбам создан сбор на дальнейшее развитие miniShop2
Огромное спасибо, всем кто поддерживает и донатит!
Николай Савин
27 апреля 2022, 20:06
modx.pro
3 414
+21
Поблагодарить автора Отправить деньги

Комментарии: 19

Иван Бочкарев
27 апреля 2022, 20:08
+1
@Николай Савин Спасибо за работу!
    Руслан Алеев
    27 апреля 2022, 20:17
    +2
    МОЩЬ!
      Денис Мижеревич
      27 апреля 2022, 23:37
      0
      Подскажите, пожалуйста. Ставлю minisho2 на MODX 3.0 (чистая установка).
      И при установке minishop2 выдает ошибку «PHP warning: require_once(/var/www/start-z31725/data/www/shop.denis-yogafree.ru/core/model/modx/modprocessor.class.php): failed to open stream: No such file or directory», скрин prnt.sc/-1mxUbSuSdaw
      Есть решение?
        Иван Бочкарев
        28 апреля 2022, 04:45
        +1
        Вы читали заголовок статьи? Поддержки modx 3 пока нет…
        Misha Bulic
        28 апреля 2022, 09:20
        0
        Было бы здорово, если бы был список совместимых дополнений. mSearch2 работает?
          Николай Савин
          28 апреля 2022, 09:23
          0
          Это статья не про MODX3 а про minishop2.
            Misha Bulic
            28 апреля 2022, 09:26
            0
            я понял, после обновления msearch будет так же работать? Ок, потестирую сам
              Николай Савин
              28 апреля 2022, 09:28
              +1
              А где связь? Никаких изменений связанных со списком товаров заявлено не было.
              Обновление касается корзины и оформления заказа по большей части.
                Алексей Соин
                28 апреля 2022, 14:38
                +1
                я думаю, имеется ввиду не список допов работающих с modx3, а допов которые корректно работают с новой версией minishop2
                  Евгений Webinmd
                  28 апреля 2022, 15:04
                  0
                  все работающие ранее компоненты работают
          Alexey
          29 апреля 2022, 16:51
          +2
          Спасибо за труд! Закинул копеечку. Странно, Тинькофф выдал ошибку в номере карты, но подтверждение пришло и перевод прошел. Надеюсь, туда, куда нужно))
            Sergey
            06 мая 2022, 13:10
            0
            Для третьей версии пока никакого минишопа нет получается?
              Николай Савин
              06 мая 2022, 13:11
              +1
              Да — для MODX3 минишопа пока нет. Версия сейчас в разработке.
                Sergey
                06 мая 2022, 13:13
                0
                Спасибо за труд!
                  Николай Савин
                  06 мая 2022, 13:14
                  +2
                  Добрые люди обычно в спасибо копеечку заворачивают )
                  Алексей
                  12 мая 2023, 14:42
                  -1
                  Здравствуйте.
                  Подскажите пожалуйста по minishop'у есть какие-нибудь предположительные сроки выхода для modx 3?
                    Николай Савин
                    13 мая 2023, 10:07
                    0
                    🙈
                      Алексей
                      13 мая 2023, 10:10
                      0
                      Это значит ещё слишком рано)?
                        Николай Савин
                        13 мая 2023, 10:19
                        0
                        Это значит, что у меня не хватает времени в принципе заниматься этой версией.
                        Я, как и все работаю на зарплате. Какое-то количество свободного времени конечно есть, но чаще всего находятся задачи, которые выглядят более важными.
                        К примеру ребята присылают обновления для minishop2 практически каждую неделю. Это все нужно внимательно проверить, оттестировать, где-то отправить на доработку, где-то влить и оформить релиз.
                        Релизы у нас часто — каждый месяц. И почти всегда что-то крупное, интересное.
                        Это кстати сама по себе тоже причина (Частые крупные релизы). Потому как в идеальном мире, нужно успевать все это перетаскивать еще и в MiniShop3.
                Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                19