Проблемма modExtra

Добрый день.
Для начала большое спасибо Василию Наумкину за подробный курс по созданию компонента Modx.
Изучаю Modx недавно, при создании компонента столкнулся с такой проблемой.
Делаю все по вышеописанному курсу, за исключением некоторых различий в используемой github.com/bezumkin/modExtra версии modExtra и версии из курса. И ещё делаю на локальном хосте Denwera без использования Git репозитория.
Перепробовал кучу вариантов, в том числе просто устанавливая modExtra.
Итак, собираю и устанавливаю на сайт. Все работает прекрасно.
Настраиваю Пространства имен, и добавляю пути:
sendex_assets_path	{base_path}modExtra/assets/components/modextra/
sendex_core_path	{base_path}modExtra/core/components/modextra/
sendex_assets_url	/modExtra/assets/components/modextra/
И вот тут в консоли браузера появляется ошибка:
SyntaxError: expected expression, got '<'
Пробуя различные варианты выяснил, что именно из за этого sendex_assets_url параметра.
p.s. Естественно проблема повторяется и при разработке компонента sendex из урока. Переименование компонента, изменение схемы и сборка и установка все проходит успешно. Я поначалу забил, на эти пути и редактировал файлы непосредственно установленного компонента. Но дошел до урока по пересборке компонента, и уперся. Помогите пожалуйста разобраться.
Спасибо!
Александр
28 марта 2016, 10:49
modx.pro
1
2 917
0

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

Илья Уткин
28 марта 2016, 15:47
0
Так денвер уже даааавно устарел. Мой совет — зарегистрироватсья на хостинге.

Modhost.pro — есть тестовые серверы (на сутки). Тариф для разработчика не такой уж дорогой.
Реф. ссылка: modhost.pro/?msfrom=c5ff7c27c0253eba8cb41c5d158258f4

А у Beget вообще первый месяц на любом тарифе бесплатно. Уж месяца-то хватит для обучения.
Реф. ссылка: beget.ru/?id=12867
    Александр
    28 марта 2016, 15:50
    0
    То есть косяк с путями именно из за денвера?
      Илья Уткин
      28 марта 2016, 15:52
      0
      Не знаю, но очень вероятно
        Александр
        28 марта 2016, 15:55
        0
        Понятно, спасибо!
        Попробую ваше решение.
          Александр
          29 марта 2016, 08:56
          0
          Добрый день, Илья!
          Создал по вашей ссылке на modhost.pro тестовый сайт. В корень положил modExtra, переименовал php скриптом в test, перегенерировал модель, и транспортировал на сайт.
          В демо таблицу добавил тестовую запись.
          Затем прописал пространства имен и пути к соответствующим разделам в корневой папке test.
          В результате в консоле браузера появилась другая ошибка
          POST XHR http://s4913.h2.modhost.pro/test/assets/components/test/connector.php
          Не подскажете, может быть в связи с тем что установочные файл modExtra последней редакции отличаются от описанных в курсе, требуется ещё какие то доп настройки перед вызовом build.transport.php проводить? Очень уж хочется нормально настроить компонент для разработки.
          Спасибо!
            Илья Уткин
            29 марта 2016, 12:58
            0
            modExtra развивается, там появляются новые фишки, компонент адаптируется к новым версиям MODX, потому файлы и различаются. Но сам смысл остаётся таким же.

            А по поводу ошибки трудно сказать… Вообще все пути там уже и так прописаны, делать этого самостоятельно нет необходимости. Если у вас это какой-то доп. функционал, то, может быть, в нем где-то ошибка…
              Александр
              29 марта 2016, 13:10
              0
              Я пути прописываю, чтобы разработку вести в корневой папке компонента которая получена после переименования modExtra. Чтобы не лазить по всему дереву папок движка. И плюс я так понял, если скажем в схему БД вносились изменения, то нужно заново генерировать модель и пересобирать компонент. То есть получается нужно лазить по всему движку собирать измененные файлы компонента, заменять ими файлы в корне и пересобирать, что мягко говоря не очень удобно.
                Илья Уткин
                29 марта 2016, 13:12
                0
                modExtra не надо распаковывать прям в сам MODX — он должен быть рядом:
                /assets/
                /connectors/
                /core/
                /manager/
                /modExtra/
                В modExtra все пути уже прописаны так, чтобы работало из этой папки
                  Александр
                  29 марта 2016, 13:43
                  0
                  У меня так и есть.
                  Из архива скачанного отсюда github.com/bezumkin/modExtra распаковываю в корень хоста, то есть получаю:
                  /assets/
                  /connectors/
                  /core/
                  /manager/
                  /modExtra/
                  Затем переименовываю допустим в test, то есть запускаю:
                  /modExtra/rename_it.php?name=test
                  Дерево получается такое:
                  /assets/
                  /connectors/
                  /core/
                  /manager/
                  /test/
                  Затем меняю схему, перегенерирую модель:
                  /test/_build/build.model.php
                  и устанавливаю на сайт:
                  /test/_build/build.transport.php
                  После этого таблица редактируется, все хорошо.
                  Для дальнейшей разработки, мне нужно допустим поправить:
                  items.grid.js
                  Если я правлю файл:
                  /assets/components/test/js/mgr/widgets/items.grid.js
                  изменения прекрасно видно. Но если я правлю файл установщика:
                  /test/assets/components/sendex/js/mgr/widgets/items.grid.js
                  то никаих изменний нет.
                  Это вроде бы так и должно быть. И насколько я понял из курса, пространство имен и пути настройки как раз для этого и прописываются, чтобы можно было изменять непосредственно установщик, и изменения были видны без пересборки компонента.
                  Или я чего то не понял?
                    Илья Уткин
                    29 марта 2016, 13:58
                    0
                    Просто после изменения
                    /test/assets/components/sendex/js/mgr/widgets/items.grid.js
                    надо опять запускать
                    /test/assets/components/sendex/js/mgr/widgets/items.grid.js
                      Александр
                      29 марта 2016, 14:26
                      0
                      Сорри опечатался:
                      /test/assets/components/test/js/mgr/widgets/items.grid.js
                      но не в этом суть, не понял зачем этот файл нужно запускать если это скрипт компонента?
                        Илья Уткин
                        29 марта 2016, 14:28
                        0
                        Я тоже опечатался)) Запускать надо, конечно
                        /test/_build/build.transport.php
                        Александр
                        29 марта 2016, 14:44
                        0
                        То есть после каждой правки:
                        /test/assets/components/sendex/js/mgr/widgets/items.grid.js
                        нужно переустанавливать компонент:
                        /test/_build/build.transport.php
                        ???
                        В этом уроке bezumkin.ru/training/course1/2150/ Василий пишет:
                        И тут у нас 2 варианта: после каждого изменения собирать и устанавливать пакет, или научить MODX загружать скрипты из директории /Sendex.
                        Вот второй вариант и пытаюсь реализовать для разработки.
                    Сергей Шлоков
                    29 марта 2016, 14:38
                    +2
                    Настройки namespace нужны для лексиконов. А для того, чтобы загружались файлы из нужной папки необходимо добавить 2 системные настройки
                    test_assets_url = /test/assets/components/test/
                    test_core_path = {base_path}test/core/components/test/
                    В вашем случае они будут грузиться из папки /test/assets/... и /test/core/...
                      Александр
                      29 марта 2016, 14:57
                      0
                      Так уже пробовал так, делать только в качестве тестового, компонент с именем sendex.
                      Сейчас ещё раз попробую, пробовал различные настройки, может быть такую пропустил))
                        Александр
                        29 марта 2016, 15:43
                        0
                        Попробовал на двух хостах, не помогло.
                        На тестовом хостинге modhost.pro ошибка:
                        POST XHR http://s4913.h2.modhost.pro/test/assets/components/test/connector.php
                        Для локального хоста, вместо денвера поставил XAMPP, ошибка та же что и в начале:
                        SyntaxError: expected expression, got '<'
                        Настройки в обоих случаях — namespace:
                        test	{base_path}test/core/components/test/
                        пути:
                        test_assets_url	/test/assets/components/test/
                        test_core_path	{base_path}test/core/components/test/
                          Сергей Шлоков
                          29 марта 2016, 16:32
                          1
                          +1
                          Да, забыл, нужно еще в коннекторе заменить первую строчку на следующее условие
                          if (file_exists(dirname(dirname(dirname(dirname(__FILE__)))) . '/config.core.php')) {
                              require_once dirname(dirname(dirname(dirname(__FILE__)))) . '/config.core.php';
                          }
                          else {
                              require_once dirname(dirname(dirname(dirname(dirname(__FILE__))))) . '/config.core.php';
                          }
                          Александр
                          29 марта 2016, 17:18
                          0
                          Сергей, спасибо большое!!!
                          Теперь все заработало и на тестовом хостинге и на XAMPPe.
                          Сергей Шлоков
                          29 марта 2016, 18:26
                          +1
                          Пожалуйста.
                          Думаю, было бы удобно, если бы это работало, так сказать, из коробки. Наверно, надо добавить это в modExtra.
      Михаил
      29 марта 2016, 14:34
      0
      Могу дать на месяц VPS за символичную плату. Ну или на два, пока научишься.
        Александр
        29 марта 2016, 14:58
        0
        Спасибо, но сначала нужно точно выяснить в чем моя ошибка. Ибо тестовый хостинг мало помог.
        Андрей
        20 ноября 2017, 20:23
        0
        Всем привет. Такая у меня незадача. Клонировал modExtra, переименовал его, далее запустил файл /_build/build.php и у меня установился компонент. Далее прописал пути в Прпострансве имен и системных настройках — захожу в админку и вижу чистое поле, там где должен быть контент компонента. В консоли вот что:
        Uncaught TypeError: Cannot read property 'request' of undefined
        at constructor.execute (ext-all.js:21)
        at constructor.load (ext-all.js:21)
        at modTestProgress.grid.Items.MODx.grid.Grid [as constructor] (modx.jsgrps-min.js:sourcemap:5)
        at new modTestProgress.grid.Items (items.grid.js:37)
        at Object.create (ext-all.js:21)
        at S.createComponent (ext-all.js:21)
        at S.lookupComponent (ext-all.js:21)
        at S.add (ext-all.js:21)
        at S.(ext-all.js:21)
        at Object.each (ext-base.js:21)
        Спасите, меня))
          Сергей Шлоков
          20 ноября 2017, 21:10
          0
          Это тебя кто-то сглазил. :)
          Хотя Василий обновил компонент на Гитхабе. Может в этом причина.
            Андрей
            20 ноября 2017, 21:12
            0
            ))) Да, я тоже сижу и смотрю по гитхабу, что вчера обновления были. Может в этом дело? Можно вас попросить попробовать воспроизвести проблему — если она повторится и у вас, то я буду хоть спокойно спать, понимая, что это не я тупой, а чем-то другом проблема)))
              Сергей Шлоков
              21 ноября 2017, 14:33
              0
              Ты уж сам попробуй разобраться. Мне бы найти время для своих планов. Поищи где вызывается modTestProgress.
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          25