Давайте делиться мнениями "Крик души")

Друзья, всем привет!
Заранее извиняюсь, если в чем-то не прав, ни кого не хотел обидеть, хочу просто высказаться.
Долго не решался написать этот пост. (Извиняюсь если не туда опубликовал в «Вопросы») но хотел привлечь максимум внимания.

Предыстория.
Давно занимаюсь созданием сайтов (я не программист, наверное больше веб-мастер) и перешел с wp на modx, наверное уже лет 7 назад. Честно говоря modx покорил сразу. Но есть и обратная сторона медали. Из-за меньшей популярности развитие сообщества и компонентов очень на низком уровне, я сейчас говорю о русскоязычном комьюнити.

Хотелось обсудить несколько компонентов.
Если взять minishop2 он несомненно развился и вырос, но по прежнему если сравнить его с wp (а это не разу не магазин) то на тот момент он был даже удобнее. Например работа с опциями там была лучше, кеширование и фильтр, лучше (да это не только относится конкретно в minishop2).

Честно, на сегодняшний день в нем много что не хватает.
1. Галерея устарела. Я посмотрел, что она обновлялась 8-10 лет назад. (Да, согласен, все ставят свою)
2. Работать с опциями очень не просто, не хватает функциональности (Первый магазин я тестировал Shopkeeper3, но если посмотреть сейчас, то его развитие остановилось).
3. Так-же что касается опций, не хватает своего встроенного функционала как msOptionsPrice2 (как я понимаю, компонент больше не будет обновляться, так-как автор пропал и не поддержку не отвечает). Хотелось бы увидеть, что то похожее как реализовано на bitrix «Торговые предложения». Что очень круто там сделано, дак это «Торговые предложения».
4. Фильтрация и поиск. Наверное будущего у mSearch2 нет, так-как его только поддерживают. На сегодняшний день я писал, чтобы пофиксили баг с поиском по цифрам (не корректно присваивается вес), но к сожалению ни чего не изменилось. Хочется увидеть современный поиск, который будет обрабатывать быстро, большое количество товаров, грамотно кешировать, при фильтрации показывать товар с нужным фото и характеристиками, опять-же, то как это сделано у bitrix (Если выбрали товар в фильтре нужного цвета, то он вам и покажет фото и характеристику соответствующую поиску).

Наверное кто-то еще сможет дополнить этот список своими пожеланиями.

Так можно говорить о многих компонентах, например easyComm, крутой компонент. Но я бы хотел увидеть в нем возможно загрузки фотографий с возможность перетаскивать, возможно фильтровать по кол-ву звезд.

Так-можно говорить о многих компонентах, большинство из них делаются для заказчиков и попадают сюда (предполагаю), поэтому не все компоненты продолжают развиваться.

Как мне кажется не хватает мотивации разработчикам. Наверное было бы круто (наверное меня некоторые закидают камнями, хотя если честно, я сам купил более 50 компонентов и при моем предложении, придется еще заплатить не мало) я бы сделал покупку компонентов по одной цене и сделал бы платным (на любое кол-во сайтом) обновление, например ты покупаешь компонент и получается обновление на год (может на пол года) бесплатно, дальше, что бы его обновить, покупаешь например на месяц за 1000 рублей продление. На мой взгляд это было бы адекватно, так-как сейчас, 1 компонент стоит 500 р… а другой 10000 р. И что бы получить поддержку тебе надо заплатить совершенно разные деньги. Как мне кажется это даст мотивацию разработчикам развивать компоненты, так-как они будут получать за это вознаграждение. Если посмотреть сколько раз скачали mSearch2, то сколько же людей купит обновление).

Так-же как мне кажется не хватает раздела для каждого компонента, где бы люди смогли писать свои предложения по улучшению а автор бы их внедрял.

Возможно было бы еще здорово сделать раздел, где люди бы предлагали свои идеи, а разработчики их бы реализовывали и поддерживали (можно делать что то вроде соавторства, порой идея дороже стоит, поэтому давать не большой процент тому, чью идею реализовали)

Что касается minishop2, ребята, кто развивает, вы молодцы, давайте напишем список правок, оценим его и сделаем сбор, так вам будет приятней работать.

Давайте развиваться! Извините, если кого-то обидел или задел, я правда и искренне верю, что все получится, главное захотеть.
Сергей
05 июня 2023, 13:55
modx.pro
1 190
+1

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

Денис Усманов
05 июня 2023, 14:09
0
Эта тема много раз обсуждалась, и были попытки что то сделать от самого Василия… Но что имеем, то имеем…
И по тексту видно, что Вы не знаете про чат в Телеграм где мы так же как и тут но оперативнее такие вопросы обсуждаем/обсуждали вместе с разработчиками тех или иных компонентов, в том числе с авторами Minishop2 @Николай Савин
    Денис Усманов
    05 июня 2023, 14:13
    0
    Ну и дополню. MODX для тех, кто творит, WP для тех, кто просто делает, это отличие многого стоит, что жирно намекает, что на MODX ты можешь сделать «истребитель», а на WP «бумажный самолётик».
      Николай Савин
      05 июня 2023, 14:15
      0
      Очень уж широко взялся кричать, честно говоря. Сразу на все компоненты и магазин.
      Давай выберем что-то одно, на что можно влиять и будем планомерно с этой темой разбираться.
        Константин Ильин
        06 июня 2023, 16:45
        0
        Важные компоненты mSearch2 и msOptionsPrice2 не развиваются, это действительно проблема. Т.к. сейчас частенько магазин подразумевает эти два компонента.
          Николай Савин
          06 июня 2023, 18:10
          +1
          mSearch2 с уходом Василия не имеет владельца. Он принадлежит магазину modstore, который просто получает прибыль с продаж.
          Часть прибыли уходит на техподдержку (зарплату получает Илья Уткин), но это именно ТП, без развития.
          Насколько я знаю сейчас Илья работает над адаптацией под MODX3 и даже выпустил какую то бету.
          Но mSearch без miniShop — зачем он нужен на MODX3
            Константин Ильин
            06 июня 2023, 21:53
            0
            На счет модх3 полностью согласен, для себя особых причин перехода не вижу. Как бы это не звучало, от меня «обывателя», лучше было бы его допиливать-улучшать под modx 2. Или как ранее где-то в анонсах хотели разделить компонент на поиск и фильтрацию, ну и соответственно разработчикам которые готов ими заниматься-улучшать.

            Но я думаю это очередная болтовня) очередной комментарий, в котором говорится, что надо улучшать все…
              deleted
              07 июня 2023, 12:03
              0
              > Важные компоненты mSearch2 и msOptionsPrice2 не развиваются, это действительно проблема

              Для поиска по товарам можно использовать яндекс поиск для магазинов. Фильтры можно самому сделать. Один раз сделал и ставишь на все сайты потом. Для опций можно migx использовать

              > На счет модх3 полностью согласен, для себя особых причин перехода не вижу.

              Аналогично. Элементы по-прежнему в базе хранятся, ext.js на месте и той же версии, каких-то новых фич вроде нет. Изменения, я так понимаю, будут видны только при разработке компонентов. ZoomX и Minishop нет, а без них никак.
                Сергей
                07 июня 2023, 12:07
                +1
                А теперь представьте ситуацию, вы сделали сайтов 200, а потом Яндекс сделал платным поиск или отказался от этого поиска. (Для Яндекса это нормально, у них все быстро меняется).
          Василий Наумкин
          08 июня 2023, 05:30
          +4
          Я сколько лет работаю, столько и встречаюсь с призывами «что-то делать» от людей, которые сами ничего делать не хотят, не могут или не умеют.

          Какой смысл создавать тему, в которой пользователи что-то будут предлагать разработчикам? Вы думаете, где-то реально сидит скучающий разработчик и не знает, чем заняться? Зайдёт в тему, почитает, и — вот оно, бегу делать, волосы назад.

          Нет, так не бывает.

          Люди, которые умеют что-то делать, без дела не сидят. И если они не хотят развивать свои дополнения для MODX, значит они заняты чем-то еще. Как правило тем, за что лучше платят, или где интереснее работать.

          Современный MODX не интересен разработчикам, ему просто нечего предложить. Отсталая админка, проприетарная система дополнений, странно прикрученый composer в 3й версии. Поэтому, как только появляются более-менее серьёзные навыки, разработчик переходит на Laravel или еще куда. А сюда заходит просто поболтать, потому что сложилось клёвое сообщество.

          Я не знаю никого, кто бы на полный рабочий день занимался развитием MODX или компонентов для него. Именно развитием, клепать сайтики много кто может. Хороший программист денег стоит, но за развитие системы их не предлагают.

          MODX развивается с 2004 года, и еле-еле доползли до 3й версии. Я еще помню, как issues писали на Redmine, и как переносили исходники на Github. Некоторые issues еще с тех пор там висят!
          А вот Laravel стартовал в 2011 году, и уже вышло 10 версий — летит ракетой. Там целая экосистема, вплоть до собственных сред разработки, типа Laravel Valet.

          И это еще хорошо, что мы сделали modstore.pro, потому что американские владельцы до сих пор не озаботились монетизацией. PR в репозиторий висят месяцами, а то и годами. Когда ты получишь обратную связь — уже забудешь, зачем этот PR предлагал. Это потому, что и там никто на зарплате работой с репозиторием не занимается.

          Мы при капитализме живём, любой энтузиазм рано или поздно заканчивается. Можно просто посмотреть, кто был активен в сообществе и что-то делал лет 5 назад, и понять, что никого из «старичков» не осталось.

          Это естественный процесс взросления.

          Так что, мой совет, не стоит ничего ждать, и ни к чему призывать. Лучше развиваться самому и осваивать другие системы, которые более по душе. Тот же Битрикс в иходном вопросе приведён в качестве примера 2 раза.
            Александр Туниеков
            08 июня 2023, 12:32
            0
            MODX для тех, кто творит, WP для тех, кто просто делает, это отличие многого стоит
            Модекс крут :-). Я только на модекс и работаю. Ни ларавел ничто другое мне ни зашло. Просто потому что от старта начала программирования до рабочего сайта в модекс минимум телодвижений. А на ларавел (Я могу ошибаться) на старте нет админки и пользователей.Смысл самому каждый раз писать админку и процедуры аутентификации??? Модекс крут потому что многое стандартно используемое уже есть и можешь сосредоточиться на конкретно логике своего приложения. В том числе круто что модекс почти не ограничевает в том какое приложение ты хочешь написать. Мы например пишем управление производством.
            Аналогов по соотношению гибкость-скорость разработки я не знаю.
              Денис Усманов
              08 июня 2023, 12:57
              0
              Как правильно @Василий Наумкин подметил:
              … клепать сайтики много кто может. Хороший программист денег стоит, но за развитие системы их не предлагают.
              Есть те, кто делают сайты, а есть те, кто развивает бэк, и их осталось единицы…
                Александр Туниеков
                08 июня 2023, 13:41
                0
                Есть те, кто делают сайты, а есть те, кто развивает бэк, и их осталось единицы…
                Бек или админку? Было бы что в админке развивать… Ресурс, чанк, сниппет, пользователя и т.д. можно создать и отредактировать и что еще надо то?
              Сергей
              08 июня 2023, 13:23
              0
              Я считаю, что каждый в праве на свое мнение, я высказался, ранее не видел тут подобных постов, возможно ни кто не хочет это выставлять на показ. Я не боюсь осуждения.

              Какой смысл создавать тему, в которой пользователи что-то будут предлагать разработчикам?
              Смысл заключается в том, что некоторые модули можно улучшать в плане функционала, удобства. Я по жизни идеалист и всегда хочу какого-то совершенства в делах. Сайт которые я создаю, дорабатываются с гадами и это очень хорошо отражается на их развитие, в последующем доход, поэтому я со своими клиентами работаю по 4-5 лет и более.

              Зайдёт в тему, почитает, и — вот оно, бегу делать, волосы назад.
              Не стоит судить всех под одну гребенку, с кем я на связи, через поддержку или телегу, то в 90% случаем они соглашаются с моим мнением и вносят корректировки (парой это баги), улучшают свои дополнения, что бы сделать свой компонент еще удобнее и привлекательней.

              Люди, которые умеют что-то делать, без дела не сидят. И если они не хотят развивать свои дополнения для MODX, значит они заняты чем-то еще. Как правило тем, за что лучше платят, или где интереснее работать.
              Улучшать это одно, но есть и баги, на которые некоторые просто забили. Это больше уже относится к порядочности.

              Современный MODX не интересен разработчикам
              Это опять же ваше мнение. Все зависит от ЦА с которой вы работаете. Если вы делаете сайты по 500 к, круто, но что делать тем, кто делает сайты за цену до 50к, ни Laravel ни bitrix не поможет решить эти задачи, так-как это дорого.

              То, что вы создали это бесспорно круто и вызывает уважение.

              Некоторые дополнения и посей день развиваются, я хочу поддержать, предложил некоторые глобальные изменения. Вы же все верно говорите, программист найдет всегда себе работу, вот я и хочу предложить, что бы работа оплачивалась. Ввести обновления через время платным, это даст мотивацию улучшать и дорабатывать, а что бы было куда стремиться, я предложил дать по каждому компоненту возможность предлагать идеи.
              Александр Туниеков
              08 июня 2023, 14:15
              0
              Скорей всего migxdb, pdotools и getTables никогда не смогут нормально работать в MODX3. В MODX3 внесли изменение Перед тем как работать с объектами их необходимо подключить в скрипте через use. Например
              use MODX\Revolution\modResource;
              Но в MODX REVO можно использовать конструкцию вида
              {'!pdoResource' | snippet : [
                 'loadModels'=>'modextra',
                 'class'=>'modextraItem',
              ]}
              И работать с любой таблицей базы данных. Просто указываешь класс таблицы в настройках сниппета.
              Так вот, по идее, чтоб работать с какой-то таблицей в модекс 3 надо прописать вызов ее класса use в начале сниппета. Но это не возможно. Сниппеты и код pdoTools, migx и getTables при запуске кода не знают какой класс им надо подключать. Класс прописан в настройках в виде текста. А в php запустить use какая-то переменная нельзя. Сейсас в MODX 3.0.3 это еще работает, но в MODX 3.3 обещают отключить метод modx->loadClass через который сейчас вызов произвольного класса через текстовую переменную его названия еще работает.

              Вообщем существенная для меня часть возможностей migx и pdoTools в MODX3 накроется. Я разбирался в этой теме полгода назад когда хотел перевести getTables на MODX3 и возможно еще что-то не понял. Не судите строго если ошибся. Но по моему для меня переход на MODX3 не имеет смысла. Вроде как часть нужного фуункционала в будущем просто не будет работать.
                Николай Савин
                08 июня 2023, 14:33
                0
                Так то pdoTools и migx для MODX3 уже больше года работают
                  Александр Туниеков
                  08 июня 2023, 15:05
                  0
                  Я сказал часть функционала не работает и не будет работать. Например попробуйте через новый migx создать пакет и таблицу в базе данных. Когда я тестировал не работало.
                  А в pdoTools код типа
                  {'!pdoResource' | snippet : [
                     'loadModels'=>'modextra',
                     'class'=>'modextraItem',
                  ]}
                  Работать наверно не будет. У меня сейчас modx3 не установлен и точно сказать не могу работает или нет. Но скорей всего в modx 3.3 такой код не будет работать.
                    Николай Савин
                    08 июня 2023, 15:08
                    0
                    Конечно не будет, нужно писать с неймспейсами. Тогда все будет
                      Александр Туниеков
                      08 июня 2023, 15:38
                      0
                      Возможно. Но тут 1 вопрос имя класса текстовая переменная например
                      $class = 'MODX\Revolution\modResource'
                      Как текстовую переменную преобразовать в неймспайс? Просто не нашел этот момент в инете.
                      use $class
                      Насколько я понял точно нельзя. А
                      $class:class

                      можно?
                        Николай Савин
                        08 июня 2023, 16:23
                        0
                        Можно попробовать экранировать слэши вот так

                        ModExtra\\Processors\\Item\\GetList
                        Не уверен что сработает, но попробовать можно
                          Александр Туниеков
                          08 июня 2023, 16:37
                          0
                          Черт. Ввязался в обсуждение. Скорее всего не сработает. неймспейс это конструкция языка php а не текстовая переменная. Но чтоб точно сказать придется сейчас модекс 3 ставить пдотулс и модеекстра и пробовать :-(
                            Николай Савин
                            08 июня 2023, 16:39
                            0
                            у меня в ModExtra3 работает
                              Александр Туниеков
                              08 июня 2023, 16:50
                              0
                              Полчаса проверю все
                                Александр Туниеков
                                08 июня 2023, 18:02
                                0
                                Так а что ты проверял? (в обществе вроде по правилам использовать ты)
                                Я проверяю
                                <?php
                                error_reporting(E_ALL);
                                ini_set('display_errors', 1);
                                
                                $class = 'ModExtra\Model\ModExtraItem';
                                $class::class;
                                ошибка: Fatal error: Dynamic class names are not allowed in compile-time ::class fetch in

                                Работает такой код:
                                {'!pdoResources' | snippet : [
                                   'class'=>'ModExtra\Model\ModExtraItem',
                                   'sortby'=>[
                                       'ModExtraItem.id'=>'ASC'
                                   ]
                                ]}
                                Это работает только не понятно будет ли дальше работать.
                                \core\components\pdotools\src\Fetch.php вызывает
                                \core\vendor\xpdo\xpdo\src\xPDO\Om\xPDOQuery.php
                                public function __construct(& $xpdo, $class, $criteria= null) {
                                        parent :: __construct($xpdo);
                                        if ($class= $this->xpdo->loadClass($class)) {
                                            $this->_class= $class;
                                            $this->_alias= $this->xpdo->getAlias($this->_class);
                                            $this->_tableClass = $this->xpdo->getTableClass($this->_class);
                                            $this->query['from']['tables'][0]= array (
                                                'table' => $this->xpdo->getTableName($this->_class),
                                                'alias' => & $this->_alias
                                            );
                                            if ($criteria !== null) {
                                                if (is_object($criteria)) {
                                                    $this->wrap($criteria);
                                                }
                                                else {
                                                    $this->where($criteria);
                                                }
                                            }
                                        }
                                    }
                                \core\vendor\xpdo\xpdo\src\xPDO\xPDO.php
                                /**
                                     * Load a class by fully qualified name.
                                     *
                                     * The $fqn should in the format:
                                     *
                                     *    dir_a.dir_b.dir_c.classname
                                     *
                                     * which will translate to:
                                     *
                                     *    XPDO_CORE_PATH/om/dir_a/dir_b/dir_c/dbtype/classname.class.php
                                     *
                                     * As of xPDO 3.0, the use of loadClass is only necessary to support BC
                                     * with older xPDO models. Auto-loading in models built with xPDO 3.0 or
                                     * later makes the use of this method obsolete.
                                     *
                                     * @param string $fqn The fully-qualified name of the class to load.
                                     * @param string $path An optional path to start the search from.
                                     * @param bool $ignorePkg True if currently loaded packages should be ignored.
                                     * @param bool $transient True if the class is not a persistent table class.
                                     *
                                     * @return string|boolean The actual classname if successful, or false if
                                     * not.
                                     * @deprecated since 3.0
                                     */
                                    public function loadClass($fqn, $path= '', $ignorePkg= false, $transient= false) {
                                loadClass вроде deprecated а закомментировал весь блок с if ($class= $this->xpdo->loadClass($class)) { сайт ушел в аут. Чет похоже разработчики MODX3 недодумали :-)
                                  Николай Савин
                                  08 июня 2023, 18:23
                                  0
                                  Да loadClass до сих пор используется и очень активно прямо в ядре.
                                    Александр Туниеков
                                    08 июня 2023, 18:38
                                    0
                                    Ага. А вот как мне быть? Мне нужно чтоб класс таблицы я мог указать прямо в параметрах сниппета. То есть имя класса в сниппете есть только в виде переменной строки.
                                    $class = 'ModExtra\Model\ModExtraItem';
                                    $class::class;
                                    Так не работает. Конечно можно использовать eval
                                    $class = 'ModExtra\Model\ModExtraItem';
                                    eval('$class1 ='. $class.'::class;');
                                    if($item = $modx->getObject($class1,1)){
                                        print_r($item->toArray());
                                    }

                                    Но eval как известно зло. Или Использовать $xpdo->loadClass Но его не изветно когда отрубят.
                                    Так как быть?
                                      Александр Туниеков
                                      08 июня 2023, 18:45
                                      0
                                      в migx при попытке содать таблицы в базе вылетает ошибка
                                      Fatal error: Class 'xPDOGenerator_mysql' not found in C:\OSPanel\domains\modx3.loc\core\components\migx\model\migx\migxpackagemanager.class.php on line 3
                      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                      26