UiCMPGenerator дополнение для создания пакетов
Hi, написал тут свое дополнение для создания пакетов UiCMPGenerator. За основу взято дополнение CMPGenerator, но в моем прикручен графический интерфейс для создания зависимостей типа Композиционная (Composite) и Агрегирующая (Aggregate), а также можно расширять родные таблицы Modx-a.
Для работы требуется MODX Revolution 2.3.х
Ссылка на офф репозиторий http://modx.com/extras/package/uicmpgenerator
Видео: http://youtu.be/Qkspw8kXwK4
Для работы требуется MODX Revolution 2.3.х
Ссылка на офф репозиторий http://modx.com/extras/package/uicmpgenerator
Видео: http://youtu.be/Qkspw8kXwK4
Комментарии: 65
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
ПашокПашокFi1osofА github-проект есть?
Fi1osofFi1osofЕсли хотите, я могу залить пакет. Но на самом деле разницы между тем, что вы распространяете уже готовый пакет, и если это будет гит-проект — по-моему вообще никакой, с юридической точки зрения.
Fi1osofСпасибо!
Те, кто создают компоненты, понимают о чем речь, вам могу посоветовать курс Василия bezumkin.ru/training/course1/
/controllers
/docs
/elements
/lexicon
/model
/processors
Вообще они есть, создались, но в админке modx не отображаются.
Тестил 2 раза.
На тестовом сайте modhost.ru тоже так. Если переименовать папку компонента, то каталоги открываются.
s860
Af2jZ1Unw9dZ
Каталог ads не открывается…
В логах ничего не было. С правами тоже все нормально.
s872.h3.simpledream.ru/manager/
s872
P6F3T9qILRDd
Такой код выдает ошибки. Что я не правильно делаю?
Правда, кажется, в нем есть ошибка, поправьте, если что-то не так делаю, или что-то не понял.
Опишу проблему и порядок действий.
Есть две таблицы:
Таблица с заказами является главной по отношению к покупкам в заказе. При удалении заказа должны удаляться связанные покупки.
В результате получается такая схема:
Вроде бы, напутано с «cardinality».
Должно быть наоборот: composite — «many», aggregate — «one».
В общем после генерации схемы вот такой код выдавал fatal error:
Если руками поправить значения «cardinality» в файлах garderoborders.map.inc.php и garderobpurchases.map.inc.php, то все отрабатывает корректно, без ошибок. Выводятся покупки из заказа с id=7.
Собственно вопрос: это я туплю и что-то не так делаю или в компоненте действительно ошибка?)
Нужно будет в следующей версии компонента сделать запрет на создание связи из input порта.
Вот для примера натыкал всевозможных связей:
У тебя при композиционной связи генерируется owner=owner, из-за этого не работает addMany().
Эту штуку тоже подправить надо
UICMPGenerator не видит ни одной таблицы в БД. Когда сайт только разрабатывался, все было нормально. XML-таблица выглядит вот так:
Но при этом скрипты, которые писались до поломки, отрабатывают без проблем.
Получаю:
Записи в таблице имеются.
Переходим в настройки системы и создаем новый параметр (если его еще нет) extension_packages. Заполняем только «Ключ» (extension_packages) и «Значение»:
или из консоли
выдает вот такое сообщение:
[2017-04-24 20:39:23] (WARN @ C:\home\htdocs.modx\core\xpdo\xpdo.class.php: 667)
Could not load metadata map geodata/mysql/geodata.map.inc.php for class geodata from geodata.mysql.geodata
modx v.2.5.5
или
выдает вот такое сообщение:
[2017-04-24 20:39:23] (WARN @ C:\home\htdocs.modx\core\xpdo\xpdo.class.php: 667)
Could not load metadata map geodata/mysql/geodata.map.inc.php for class geodata from geodata.mysql.geodata
modx v.2.5.5
нужно было в файле: C:\home\htdocs.modx\core\components\geodata\model\geodata\mysql\geodata.map.inc.php сменить регистр, т.е.:
Было так
Стало так:
а в extension_packages нужно прописать
Что может 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 сек.
И таки да, данное дополнение платное.
покопался, разобрался сам.
у тебя вызов идет $generator->parseJsonSchema($cmp->scheme);
а надо $generator->parseJsonSchema($cmp->scheme, $table_prefix);