Свои поля в БД после установки 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?
Евгений Webinmd
21 января 2013, 12:27
modx.pro
2 048
0

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

Виталий Киреев
21 января 2013, 17:07
0
После изменений запускай build.transport.php, затем в менеджере пакетов переустанови пакет, изменения появятся. Если держать эти вкладки открытыми, получается довольно быстро, можно даже мелкие изменения смотреть)
    Евгений Webinmd
    21 января 2013, 17:08
    0
    ага, а изменения делать в не собранном пакете а не в самом компоненте?
      Евгений Webinmd
      21 января 2013, 17:24
      0
      методом проб и ошибок понял что менять надо в том пакете который потом собирать надо.
      Но что-то не меняется. Буду мучить кеш дальше. Спасибо за помощь.
    Евгений Webinmd
    22 января 2013, 00:30
    0
    нашёл еще один файлик с названиями полей
    — \assets\components\ordertaxi\js\mgr\widgets\items.grid.js

    Где еще искать мне эти записи, а то не получается свои пол заполнять через админку, в админке их вообще не видно :(
      Алексей
      22 января 2013, 13:17
      0
      Женя, почитай Васин пост на хабре:
      Создаем компонент для MODX Revolution

      И еще вот это:
      xPDO] Памятка-эксперимент по связям между объектами. Часть 1
      [xPDO] Памятка-эксперимент по связям между объектами. Часть 2
      [xPDO] Памятка-эксперимент по связям между объектами. Часть 3

      Как бы сказать, создается впечатление, что ты не с того начал и немножко «не в теме» )

      После изучения материала по указанным ссылкам у тебя обязательно появятся вопросы, это нормально, просто задавай их)

      UP

      Забыл добавить: ссылки, указанные в 1 части (xPDO] Памятка-эксперимент по связям между объектами. Часть 1) то же нужно исследовать
        Евгений Webinmd
        22 января 2013, 13:20
        0
        Спасибо!
        Пост на хабре читал, читаю и буду еще долго читать. Сложно быстро сменить логику после долгой работы с другой cms.
        Спасибо за ссылки.
          Алексей
          22 января 2013, 22:36
          0
          Сам распечатал эти памятки — так мне понравились)

          Еще много света на непонятности прольет исходный код других пакетов, вот хотя бы xml схема пакета Tickets:

          https://github.com/bezumkin/Tickets/blob/master/core/components/tickets/model/schema/tickets.mysql.schema.xml

          Это вдогонку к памяткам-экспериментам, точнее дополнительная показательная схема, сама по себе не «скажет» ничего при первой встрече, но в сумме с памятками становится «разговорчивой». Очень интересно.
            Евгений Webinmd
            22 января 2013, 23:32
            0
            почитал, большую часть не понял, но зато с их помощью разобрался как свои поля выводить в админке.
            Сейчас вот правда что-то с путями напутал, но дело движется. Большое вам спасибо за отличную подборку материалов!
        Евгений Webinmd
        23 января 2013, 12:59
        0
        И снова здравствуйте, вот создал я компонент, выводится всё, с админки записывается, но стукнуло мне в голову поиграться и с фронтэдом, сделал формочку через 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… тут путь к кешу, ниже в коде указал строку куда ведет ошибка

        Код такой:
        /* получение переменных из формы*/ 
        $formFields = $hook->getValues();
        $number = $formFields['phone'];
        
        //Сохранение записи в пользовательскую таблицу БД
        $or = $modx->newObject('orderTaxiItem');
        $or->fromArray(array( // на этой штуке вылазит ошибка
          'phone' => "$number",
        ));
        $or->save();
        Подскажите в какую сторону копать? На англоязычных сайтах пишут что-то про неверные пути, но я даже не представляю в какую сторону копать, так как классы есть, они присутствуют в указанных файлах.
          Алексей Хребтов
          23 января 2013, 20:21
          0
          Евгений, тебе нужно в начале хука написать
          $modx->addPackage('ordertaxiitem', $modx->getOption('core_path').'components/ordertaxiitem/model/','modx_');

          modx_ — это префикс таблицы
            Евгений Webinmd
            24 января 2013, 12:33
            0
            !!! ДА!!! Все дело было именно в этом пути, подставил имя пакета и всё пошло отлично. Большое вам спасибо!
          Алексей Хребтов
          23 января 2013, 20:20
          0
          перенес ответ
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            12