Проблемма modExtra
Добрый день.
Для начала большое спасибо Василию Наумкину за подробный курс по созданию компонента Modx.
Изучаю Modx недавно, при создании компонента столкнулся с такой проблемой.
Делаю все по вышеописанному курсу, за исключением некоторых различий в используемой github.com/bezumkin/modExtra версии modExtra и версии из курса. И ещё делаю на локальном хосте Denwera без использования Git репозитория.
Перепробовал кучу вариантов, в том числе просто устанавливая modExtra.
Итак, собираю и устанавливаю на сайт. Все работает прекрасно.
Настраиваю Пространства имен, и добавляю пути:
p.s. Естественно проблема повторяется и при разработке компонента sendex из урока. Переименование компонента, изменение схемы и сборка и установка все проходит успешно. Я поначалу забил, на эти пути и редактировал файлы непосредственно установленного компонента. Но дошел до урока по пересборке компонента, и уперся. Помогите пожалуйста разобраться.
Спасибо!
Для начала большое спасибо Василию Наумкину за подробный курс по созданию компонента 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 из урока. Переименование компонента, изменение схемы и сборка и установка все проходит успешно. Я поначалу забил, на эти пути и редактировал файлы непосредственно установленного компонента. Но дошел до урока по пересборке компонента, и уперся. Помогите пожалуйста разобраться.
Спасибо!
Комментарии: 25
Так денвер уже даааавно устарел. Мой совет — зарегистрироватсья на хостинге.
Modhost.pro — есть тестовые серверы (на сутки). Тариф для разработчика не такой уж дорогой.
Реф. ссылка: modhost.pro/?msfrom=c5ff7c27c0253eba8cb41c5d158258f4
А у Beget вообще первый месяц на любом тарифе бесплатно. Уж месяца-то хватит для обучения.
Реф. ссылка: beget.ru/?id=12867
Modhost.pro — есть тестовые серверы (на сутки). Тариф для разработчика не такой уж дорогой.
Реф. ссылка: modhost.pro/?msfrom=c5ff7c27c0253eba8cb41c5d158258f4
А у Beget вообще первый месяц на любом тарифе бесплатно. Уж месяца-то хватит для обучения.
Реф. ссылка: beget.ru/?id=12867
То есть косяк с путями именно из за денвера?
Не знаю, но очень вероятно
Понятно, спасибо!
Попробую ваше решение.
Попробую ваше решение.
Добрый день, Илья!
Создал по вашей ссылке на modhost.pro тестовый сайт. В корень положил modExtra, переименовал php скриптом в test, перегенерировал модель, и транспортировал на сайт.
В демо таблицу добавил тестовую запись.
Затем прописал пространства имен и пути к соответствующим разделам в корневой папке test.
В результате в консоле браузера появилась другая ошибка
Спасибо!
Создал по вашей ссылке на modhost.pro тестовый сайт. В корень положил modExtra, переименовал php скриптом в test, перегенерировал модель, и транспортировал на сайт.
В демо таблицу добавил тестовую запись.
Затем прописал пространства имен и пути к соответствующим разделам в корневой папке test.
В результате в консоле браузера появилась другая ошибка
POST XHR http://s4913.h2.modhost.pro/test/assets/components/test/connector.php
Не подскажете, может быть в связи с тем что установочные файл modExtra последней редакции отличаются от описанных в курсе, требуется ещё какие то доп настройки перед вызовом build.transport.php проводить? Очень уж хочется нормально настроить компонент для разработки.Спасибо!
modExtra развивается, там появляются новые фишки, компонент адаптируется к новым версиям MODX, потому файлы и различаются. Но сам смысл остаётся таким же.
А по поводу ошибки трудно сказать… Вообще все пути там уже и так прописаны, делать этого самостоятельно нет необходимости. Если у вас это какой-то доп. функционал, то, может быть, в нем где-то ошибка…
А по поводу ошибки трудно сказать… Вообще все пути там уже и так прописаны, делать этого самостоятельно нет необходимости. Если у вас это какой-то доп. функционал, то, может быть, в нем где-то ошибка…
Я пути прописываю, чтобы разработку вести в корневой папке компонента которая получена после переименования modExtra. Чтобы не лазить по всему дереву папок движка. И плюс я так понял, если скажем в схему БД вносились изменения, то нужно заново генерировать модель и пересобирать компонент. То есть получается нужно лазить по всему движку собирать измененные файлы компонента, заменять ими файлы в корне и пересобирать, что мягко говоря не очень удобно.
modExtra не надо распаковывать прям в сам MODX — он должен быть рядом:
/assets/
/connectors/
/core/
/manager/
/modExtra/
В modExtra все пути уже прописаны так, чтобы работало из этой папки
У меня так и есть.
Из архива скачанного отсюда github.com/bezumkin/modExtra распаковываю в корень хоста, то есть получаю:
Для дальнейшей разработки, мне нужно допустим поправить:
Это вроде бы так и должно быть. И насколько я понял из курса, пространство имен и пути настройки как раз для этого и прописываются, чтобы можно было изменять непосредственно установщик, и изменения были видны без пересборки компонента.
Или я чего то не понял?
Из архива скачанного отсюда 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
то никаих изменний нет. Это вроде бы так и должно быть. И насколько я понял из курса, пространство имен и пути настройки как раз для этого и прописываются, чтобы можно было изменять непосредственно установщик, и изменения были видны без пересборки компонента.
Или я чего то не понял?
Просто после изменения
/test/assets/components/sendex/js/mgr/widgets/items.grid.js
надо опять запускать/test/assets/components/sendex/js/mgr/widgets/items.grid.js
Сорри опечатался:
/test/assets/components/test/js/mgr/widgets/items.grid.js
но не в этом суть, не понял зачем этот файл нужно запускать если это скрипт компонента?
Я тоже опечатался)) Запускать надо, конечно
/test/_build/build.transport.php
То есть после каждой правки:
В этом уроке bezumkin.ru/training/course1/2150/ Василий пишет:
/test/assets/components/sendex/js/mgr/widgets/items.grid.js
нужно переустанавливать компонент:/test/_build/build.transport.php
???В этом уроке bezumkin.ru/training/course1/2150/ Василий пишет:
И тут у нас 2 варианта: после каждого изменения собирать и устанавливать пакет, или научить MODX загружать скрипты из директории /Sendex.Вот второй вариант и пытаюсь реализовать для разработки.
Настройки namespace нужны для лексиконов. А для того, чтобы загружались файлы из нужной папки необходимо добавить 2 системные настройки
test_assets_url = /test/assets/components/test/
test_core_path = {base_path}test/core/components/test/
В вашем случае они будут грузиться из папки /test/assets/... и /test/core/...
Так уже пробовал так, делать только в качестве тестового, компонент с именем sendex.
Сейчас ещё раз попробую, пробовал различные настройки, может быть такую пропустил))
Сейчас ещё раз попробую, пробовал различные настройки, может быть такую пропустил))
Попробовал на двух хостах, не помогло.
На тестовом хостинге modhost.pro ошибка:
На тестовом хостинге 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/
Да, забыл, нужно еще в коннекторе заменить первую строчку на следующее условие
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';
}
Сергей, спасибо большое!!!
Теперь все заработало и на тестовом хостинге и на XAMPPe.
Теперь все заработало и на тестовом хостинге и на XAMPPe.
Пожалуйста.
Думаю, было бы удобно, если бы это работало, так сказать, из коробки. Наверно, надо добавить это в modExtra.
Думаю, было бы удобно, если бы это работало, так сказать, из коробки. Наверно, надо добавить это в modExtra.
Могу дать на месяц VPS за символичную плату. Ну или на два, пока научишься.
Спасибо, но сначала нужно точно выяснить в чем моя ошибка. Ибо тестовый хостинг мало помог.
Всем привет. Такая у меня незадача. Клонировал 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)
Спасите, меня))
Это тебя кто-то сглазил. :)
Хотя Василий обновил компонент на Гитхабе. Может в этом причина.
Хотя Василий обновил компонент на Гитхабе. Может в этом причина.
))) Да, я тоже сижу и смотрю по гитхабу, что вчера обновления были. Может в этом дело? Можно вас попросить попробовать воспроизвести проблему — если она повторится и у вас, то я буду хоть спокойно спать, понимая, что это не я тупой, а чем-то другом проблема)))
Ты уж сам попробуй разобраться. Мне бы найти время для своих планов. Поищи где вызывается modTestProgress.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.