CMPGenerator Pro ускоряем разработку своих пакетов

Hi, сделал новое дополнение CMPGenerator Pro на основе UiCMPGenerator.

Что может CMPGenerator Pro:

1. создать базовую файловую структуру пакета, а так же при желании базовый класс + классы для валидации и работы с POST данными;

2. автоматически добавить информацию о вашем пакете в extension_package и в namespaces Modx-а что избавляет вас на этапе разработки от сообщении об ошибки типа Could not load class: когда вы пытаетесь работать со своими таблицами;

3. создать схемные xpdo-файлы и xpdo-классы для ваших таблиц баз данных, а также указать зависимости между ними (Composite Aggregate);

4. расширять базовые классы Modx;

5. создавать в 2 клика свой тип документов Modx за счет расширения класса modResource (автоматически создадутся соответствующие контролеры, процессоры и js файлы);

6. создать для пользовательских таблиц mgr и web контролеры с процессорами (для mgr будут созданы js файлы с функционалам для работы с полями таблицы с привязкой к их типу);

7. задать php тип для полей таблицы, что влияет на то какой компонент extjs будет использоваться для работы с данным полем, а так же как его данные будет обрабатывать Modx;

8. добавить в меню админки Modx действие для вашего mgr котроллера;

9. собрать транспортный пакет с автоматическим включением в него:
— таблиц;
— чанков, сниппетов и плагинов(для того что бы события на которые подписан плагин были добавлены в транспортный пакет данный плагин должен быть создан в админке с подпиской на нужные события) из соответствующих папок в elements;
— опций;
— пунктов меню.

Примечание: большинство перечисленных выше пунктов доступы только при включенной опции «Создать базовый класс» на этапе создания пакета

Видео с демонстрацией функционала дополнения те кто смотрел для UiCMPGenerator могут пропустить с 2:38сек. по 5:35сек.

И таки да, данное дополнение платное
Prihod
17 ноября 2015, 18:02
modx.pro
11
5 535
+16
Поблагодарить автора Отправить деньги

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

Василий Столейков
17 ноября 2015, 21:32
0
УАУ! КРУТО!!!
    Николай Загумённов
    17 ноября 2015, 21:50
    +1

    Круто!
      Fedor Gorozhanko
      18 ноября 2015, 03:51
      +1
      Посмотрел видео, просто супер круто. Обязательно куплю и потестирую.
        Павел Гвоздь
        18 ноября 2015, 08:53
        0
        Вопрос. Когда ты изменил поле для своего типа документов, после новой генерации компонента оно сбросится? И что нужно сделать для того, чтобы тот JS файл пересоздался заново? То бишь, что нужно сделать, чтобы нечаяно сбросить внесённые мной изменения в этот файл?
          Prihod
          18 ноября 2015, 10:33
          0
          Если не отмечен чекбокс «Перезаписать файл» то все изменения которые ты сделал сам остаются при дальнейшей генерации компонента т.е если понадобилась перезаписать файл мы отмечаем чекбокс нажимает кнопку генерировать компонент потом убираем чекбокс и делаем свои правки которые в дальнейшем не будут перезаписываться. Но это не касается map файлов, т.е если мы добавляем новое поле в нашу таблицу то нам нет необходимости отмечать чекбокс «Перезаписать файл» т.к map файлы в любом случаи перезапишутся
          Лев Вербицкий
          18 ноября 2015, 13:08
          0
          А можете где нибудь развернуть демо? Что бы погонять самому, понять что есть, чего нету.
            Prihod
            18 ноября 2015, 13:21
            0
            Ну по-моему на видео и так все видно что может компонент, есть так сказать его lite версия UiCMPGenerator
            можно поюзать ее

            https://modx.pro/development/4601-uicmpgenerator-addition-to-package/
              Лев Вербицкий
              18 ноября 2015, 13:22
              0
              А полную версию развернуть вы не можете? Лайт версию я видел, интересно потыкать полную.
                Prihod
                18 ноября 2015, 13:33
                0
                ок, я подумаю как это можно будет сделать с защитой для компонента :)
                  Prihod
                  20 ноября 2015, 22:44
                  0
                  В общим нормальную демку сходу для тестирования компонента развернуть не получается так, что увы компонент будет без нее.
            Андрей Копп
            06 декабря 2015, 17:54
            0
            Круто, приобрёл! Создавать компоненты стало намного легче. Огромное спасибо за такой компонент!)
              Юрий
              Юрий
              21 сентября 2016, 20:43
              +1
              Тоже приобрел данный пакет. Есть вопросы и замечания (1500 рубчиков однако):
              1. При редактировании нового пакета нажатие на кнопку «Обновить» вызывает ошибку «SyntaxError: expected expression, got '}'». Неприятно.
              2. Выдает ошибки при сборке транспортного пакета, если директория «core» вынесена за пределы корневой папки. Хотелось бы корректной работы пакета при разных расположениях и названиях основных каталогов.
              3. Вопрос: будет ли реализован функционал создания таблиц и модели по файлу схеме?
                Prihod
                21 сентября 2016, 20:50
                0
                1 и 2 в ближайшей версии будет исправлено (на этой недели)
                3 — будет добавлено в другой большой сборке (пока точной даты нет)
                  Юрий
                  Юрий
                  21 сентября 2016, 21:15
                  0
                  Огромное спасибо. Очень рад, что компонент будет развиваться!
                Prihod
                24 сентября 2016, 20:24
                +2
                CMPGenerator Pro 1.0.2
                -Изменено: Размер поля scheme в БД
                -Исправлено: Обновление пустой модели
                -Исправлено: Кастомные пути к «core»
                  Антон
                  Антон
                  04 января 2017, 00:00
                  0
                  Есть ли у данного пакета возможность загрузить существующие пакеты?
                  Нужно один пакет немного подправить под себя, добавить 2 поля в БД и 2 поля в админке.
                    Prihod
                    04 января 2017, 00:11
                    0
                    нет
                      Антон
                      Антон
                      04 января 2017, 00:31
                      0
                      Эх, а то купил бы сейчас
                  Андрей
                  23 ноября 2017, 09:21
                  0
                  Добры день. А подскажите, можно ли с помощью компонента делать вкладки на странице компонента? Или это уже путем редактирования файлов в рукопашную?)
                    Prihod
                    23 ноября 2017, 12:24
                    0
                    А подскажите, можно ли с помощью компонента делать вкладки на странице компонента
                    нет
                    Семён Кудрявцев
                    15 июня 2018, 13:41
                    0
                    Сергей, приветствую! Тестирую Ваш компонент на modhost.pro, подумываю о покупке, но прежде хотел бы узнать о возможностях.
                    Вопрос: Как через компонент сделать связь новой таблицы с уже существующей в системе?
                    Я создал таблицу — контрагенты и хочу связать её с пользователями MODX по id
                    Для этого мне нужно в таблице пользователей добавить новое поле contragent_id, по которому я буду привязывать компании.
                    1)Могу ли я добавить новое поле в оригинальную таблицу users через компонент?
                    2)Какую таблицу нужно вытаскивать в рабочее поле компонента? users или выбрать пункт расширить таблицу?
                      Prihod
                      15 июня 2018, 14:15
                      0
                      а ты уверен что у тебя связь между таблицей users и контрагенты «один к одному»?
                        Семён Кудрявцев
                        15 июня 2018, 14:32
                        0
                        Я нигде об этом не упоминал) Конечно один ко многим.
                          Семён Кудрявцев
                          15 июня 2018, 14:38
                          0
                          В смысле одни пользователь может быть у одного контрагента, но у одного контрагента может быть много пользователей
                          Семён Кудрявцев
                          15 июня 2018, 14:37
                          0
                          По первому вопросу:
                          Сейчас я делаю так — modx.pro/solutions/7037-expanding-any-table-modx/
                          Через плагин маппингом добавляю новое поле в users и всё ок, но может есть возможность делать это через компонент?
                          И только сегодня понял одну фишку по поводу связей в компоненте, оказывается имеет значение какая таблица находится слева или справа при установке связи) Чисто случайно выяснилось
                            Prihod
                            15 июня 2018, 14:43
                            0
                            но ты учти если ты расширишь таблицу users то тебе нужно уже будет использовать в class_key уже не modUser а имя класса которое будет у твоей таблицы
                            Я сейчас не за компом как буду дома скину скрин как нужно CMPGeneratorPro это сделать
                              Семён Кудрявцев
                              15 июня 2018, 14:48
                              0
                              Ага, это я уже понял.
                              Скрин будут ждать, спасибо заранее!
                              Документацию бы к этому классному компоненту написать, я бы и рад в этом помочь, но пока с ним надо нормально разобраться.
                      Anton F
                      23 ноября 2018, 15:23
                      0
                      Будет ли развиваться компонент, добавляться новые возможности и т.д.?
                        MODXyou
                        23 августа 2019, 10:43
                        0
                        Добрый день!

                        Подскажите есть у меня дополнение для работы с данными. Там нужно создать таблицу, файлы залить может еще что-то.
                        Можно ли с помощью данного дополнения собрать свое, не имя навыков программирования?
                        На видео что-то уж ни чего не понятно что для чего делается…

                        Можно ли к примеру в несколько кликов сделать свое дополнение?

                        Спасибо.
                        Prihod
                        22 января 2021, 20:39
                        1
                        0
                        В MODX Revolution 2.8.1 возникает ошибка
                        Fatal error: Uncaught Exception: String could not be parsed as XML in
                        которая будет поправлена в новой сборке пакета, а пока можно обновить файл core/components/cmpgeneratorpro/model/cmpgeneratorpro/mysql/dbhelper.class.php на этот
                          Владимир
                          02 февраля 2021, 12:39
                          0
                          @Prihod при нажатии на «сгенерировать код» не генерируется схема и файлы. modx 2.8.1. Фикс выше сделал
                          Stepan
                          09 февраля 2022, 16:08
                          1
                          0
                          дополнение еще поддерживается?
                          Можно ли его ставить совместно с UICMPGenerator?
                            Prihod
                            14 февраля 2022, 17:56
                            0
                            Да
                            R2m0x94 (Vasily)
                            14 февраля 2022, 13:13
                            0
                            Попробовал на тестовом сделать, как у Вас на видео. Делал всё по видео инструкции, но валятся ошибки
                            [2022-02-11 16:27:38] (ERROR @ /home/s28944/www/core/xpdo/xpdo.class.php : 1321) Could not get table class for class: PromoCupons
                            [2022-02-11 16:27:38] (ERROR @ /home/s28944/www/core/xpdo/xpdo.class.php : 1290) Could not get table name for class: PromoCupons
                            [2022-02-11 16:27:38] (ERROR @ /home/s28944/www/core/xpdo/xpdo.class.php : 1321) Could not get table class for class: PromoCupons
                            [2022-02-11 16:27:38] (ERROR @ /home/s28944/www/core/xpdo/xpdo.class.php : 1290) Could not get table name for class: PromoCupons
                            [2022-02-11 16:27:38] (ERROR @ /home/s28944/www/core/xpdo/xpdo.class.php : 762) PromoCupons::getSelectColumns() is not a valid static method.
                            [2022-02-11 16:27:38] (ERROR @ /home/s28944/www/core/xpdo/xpdo.class.php : 762) PromoCupons::loadCollection() is not a valid static method.
                            [2022-02-11 16:27:38] (ERROR @ /home/s28944/www/core/model/modx/modprocessor.class.php : 525) PHP warning: Invalid argument supplied for foreach()
                            
                            В консоле ругань или на manager/assets/ext3/ext-all.js или на assets/components/promocupons/connector.php при добавлении в бд из меню Promo Cupons.

                            Не знаю в чем дело, не получилось и да в бд добавлял запись проверить отображение в админке — тоже не вышло.
                              R2m0x94 (Vasily)
                              14 февраля 2022, 14:04
                              0
                              Возможно я что-то упустил или в видео этого нет, но попробую обуздать в примерах понимании об addPackage, loadClass и getService и подключении сторонних таблиц, хотя так-то из консоли кастомный класс работает, добавляет объект и получает объект и коллекцию, что на обычной версии, что на про версии.
                                R2m0x94 (Vasily)
                                14 февраля 2022, 15:30
                                0
                                Проблема была успешно ликвидирована путем, что расширял класс с тем же названием, а надо было create another base class, от туда и не срасталось, а пишу, что всё делал по инструкции. Прошу прощения, виноват, делал на скорую руку.
                                Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                                37