Свои поля в БД после установки modExtra
Здравствуйте, наконец дошли руки попробовать написать что-то своё под Рево, скачал modExtra, выполнил скрипт, собрал пакет. Интересуют пару моментов:
1) Можно ли как-то изменить поля таблицы в админке нового компонента после установки пакета?
То есть я установил стандартной комплектацией, там свои поля name и decription — вносил изменения в саму базу через phpmyadmin, правил несколько файлов:
— \core\components\ordertaxi\model\schema\ordertaxi.mysql.schema.xml
— \core\components\ordertaxi\model\ordertaxi\mysql\ordertaxiitem.map.inc.php
Но в админке по прежнему те же поля.
Или необходимо все заранее предусмотреть и создавать поля в базе еще до сборки пакета?
Спасибо.
И будут ли у вас в дальнейшем курсы связанные с разработкой под modx?
1) Можно ли как-то изменить поля таблицы в админке нового компонента после установки пакета?
То есть я установил стандартной комплектацией, там свои поля name и decription — вносил изменения в саму базу через phpmyadmin, правил несколько файлов:
— \core\components\ordertaxi\model\schema\ordertaxi.mysql.schema.xml
— \core\components\ordertaxi\model\ordertaxi\mysql\ordertaxiitem.map.inc.php
Но в админке по прежнему те же поля.
Или необходимо все заранее предусмотреть и создавать поля в базе еще до сборки пакета?
Спасибо.
И будут ли у вас в дальнейшем курсы связанные с разработкой под modx?
Комментарии: 12
После изменений запускай build.transport.php, затем в менеджере пакетов переустанови пакет, изменения появятся. Если держать эти вкладки открытыми, получается довольно быстро, можно даже мелкие изменения смотреть)
ага, а изменения делать в не собранном пакете а не в самом компоненте?
методом проб и ошибок понял что менять надо в том пакете который потом собирать надо.
Но что-то не меняется. Буду мучить кеш дальше. Спасибо за помощь.
Но что-то не меняется. Буду мучить кеш дальше. Спасибо за помощь.
нашёл еще один файлик с названиями полей
— \assets\components\ordertaxi\js\mgr\widgets\items.grid.js
Где еще искать мне эти записи, а то не получается свои пол заполнять через админку, в админке их вообще не видно :(
— \assets\components\ordertaxi\js\mgr\widgets\items.grid.js
Где еще искать мне эти записи, а то не получается свои пол заполнять через админку, в админке их вообще не видно :(
Женя, почитай Васин пост на хабре:
Создаем компонент для MODX Revolution
И еще вот это:
xPDO] Памятка-эксперимент по связям между объектами. Часть 1
[xPDO] Памятка-эксперимент по связям между объектами. Часть 2
[xPDO] Памятка-эксперимент по связям между объектами. Часть 3
Как бы сказать, создается впечатление, что ты не с того начал и немножко «не в теме» )
После изучения материала по указанным ссылкам у тебя обязательно появятся вопросы, это нормально, просто задавай их)
UP
Забыл добавить: ссылки, указанные в 1 части (xPDO] Памятка-эксперимент по связям между объектами. Часть 1) то же нужно исследовать
Создаем компонент для MODX Revolution
И еще вот это:
xPDO] Памятка-эксперимент по связям между объектами. Часть 1
[xPDO] Памятка-эксперимент по связям между объектами. Часть 2
[xPDO] Памятка-эксперимент по связям между объектами. Часть 3
Как бы сказать, создается впечатление, что ты не с того начал и немножко «не в теме» )
После изучения материала по указанным ссылкам у тебя обязательно появятся вопросы, это нормально, просто задавай их)
UP
Забыл добавить: ссылки, указанные в 1 части (xPDO] Памятка-эксперимент по связям между объектами. Часть 1) то же нужно исследовать
Спасибо!
Пост на хабре читал, читаю и буду еще долго читать. Сложно быстро сменить логику после долгой работы с другой cms.
Спасибо за ссылки.
Пост на хабре читал, читаю и буду еще долго читать. Сложно быстро сменить логику после долгой работы с другой cms.
Спасибо за ссылки.
Сам распечатал эти памятки — так мне понравились)
Еще много света на непонятности прольет исходный код других пакетов, вот хотя бы xml схема пакета Tickets:
https://github.com/bezumkin/Tickets/blob/master/core/components/tickets/model/schema/tickets.mysql.schema.xml
Это вдогонку к памяткам-экспериментам, точнее дополнительная показательная схема, сама по себе не «скажет» ничего при первой встрече, но в сумме с памятками становится «разговорчивой». Очень интересно.
Еще много света на непонятности прольет исходный код других пакетов, вот хотя бы xml схема пакета Tickets:
https://github.com/bezumkin/Tickets/blob/master/core/components/tickets/model/schema/tickets.mysql.schema.xml
Это вдогонку к памяткам-экспериментам, точнее дополнительная показательная схема, сама по себе не «скажет» ничего при первой встрече, но в сумме с памятками становится «разговорчивой». Очень интересно.
почитал, большую часть не понял, но зато с их помощью разобрался как свои поля выводить в админке.
Сейчас вот правда что-то с путями напутал, но дело движется. Большое вам спасибо за отличную подборку материалов!
Сейчас вот правда что-то с путями напутал, но дело движется. Большое вам спасибо за отличную подборку материалов!
И снова здравствуйте, вот создал я компонент, выводится всё, с админки записывается, но стукнуло мне в голову поиграться и с фронтэдом, сделал формочку через FormIt, написал простенький хук и ошибка:
orderTaxi — имя тестового компонента.
(ERROR @ /index.php) Could not load class: orderTaxiItem from mysql.ordertaxiitem.
А на странице вижу такую ошибку:
Fatal error: Call to a member function fromArray() on a non-object in… тут путь к кешу, ниже в коде указал строку куда ведет ошибка
Код такой:
orderTaxi — имя тестового компонента.
(ERROR @ /index.php) Could not load class: orderTaxiItem from mysql.ordertaxiitem.
А на странице вижу такую ошибку:
Fatal error: Call to a member function fromArray() on a non-object in… тут путь к кешу, ниже в коде указал строку куда ведет ошибка
Код такой:
/* получение переменных из формы*/
$formFields = $hook->getValues();
$number = $formFields['phone'];
//Сохранение записи в пользовательскую таблицу БД
$or = $modx->newObject('orderTaxiItem');
$or->fromArray(array( // на этой штуке вылазит ошибка
'phone' => "$number",
));
$or->save();
Подскажите в какую сторону копать? На англоязычных сайтах пишут что-то про неверные пути, но я даже не представляю в какую сторону копать, так как классы есть, они присутствуют в указанных файлах.
Евгений, тебе нужно в начале хука написать
$modx->addPackage('ordertaxiitem', $modx->getOption('core_path').'components/ordertaxiitem/model/','modx_');
modx_ — это префикс таблицы
$modx->addPackage('ordertaxiitem', $modx->getOption('core_path').'components/ordertaxiitem/model/','modx_');
modx_ — это префикс таблицы
!!! ДА!!! Все дело было именно в этом пути, подставил имя пакета и всё пошло отлично. Большое вам спасибо!
перенес ответ
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.