Сегодня великий день! :-)
Больше трех месяцев назад я писал небольшую заметку по поводу своего нового пакета modxSDK. Но тогда этот проект был заморожен. Вчера я все-таки решил продолжить над ним работу. Почему? Ну хотя бы потому что у меня в NetBeans за несколько месяцев работы уже не менее 60-ти настроек соединений. Проектов еще больше. А в последнее время я вообще минимум один новый сайт разворачиваю (когда поиграться, когда для дела). Кстати, за это отдельное спасибо modxcloud.com, за то, что развернуть новый сайт — это одна минута. Но проблема заключается в том, что для программинга сайта приходится создавать новый проект в своей IDE, и получается, что иногда больше времени уходит на то, чтобы создать новый проект, нежели на саму работу с проектом.
?
В общем, я решил, что хватит тратить впустую время там, где это совершенно не требуется, и сделать в modxSDK хотя бы редактор файлов. Сел, сделал. Получилось очень и очень не плохо :-)
К слову, последние штрихи по коду я уже выполнял онлайн в самом modxSKD.
Какие были основные задачи
Редактирование файлов. На сегодня для меня было главное — редактирование кода в самой админке сайта. Главное неудобство в этом плане самой админки MODX в том, что открывая файл для редактирования, полностью перегружается страница, и сбрасывается путь до файла в навигаторе, плюс еще и источник файлов по умолчанию опять выставляется. Вот это как раз в modxSDK и решается. К тому же можно работать сразу с несколькими источниками файлов, а файлы для редактирования открываются во вкладках, то есть можно редактировать сразу несколько файлов. Кстати, плюшка: подключен Ace, и в зависимости от расширения файла используется различная подсветка (пока только php и javascript, но будет доработано). Тему оформления Ace можно сменить в настройках.
Совместная работа над проектом. Вот это по сути самая главная фишка. Каждый, кто пытался с кем-то работать над одним проектом, понимает все сложности, связанные с этим, и особенно тогда, когда к работе привлечен кто-то, у кого не должно быть полного доступа к файловой системе, выдавать кучу FTP-логинов с правами на различные папки сайта — это не удобно, а где-то даже не возможно (хостер не позволяет). Вот здесь можно создать собственные медиасурсы с путями только к тем папкам, которые дозволено видеть, и дать пользователю права только на них. Все. В modxSDK он сможет работать только с этими медиасурсами. Красота :-)
Индивидуальное оформление страницы в админке. Не буду сейчас вдаваться тонкости ExtJS-а по поводу вьюпортов, но есть некоторые ограничения в странице админки MODX-а. Самая главная — она рассчитана только на две колонки, а мне очень хотелось минимум 3 (хотя еще и подвал будет добавлен в скором будущем). Пришлось чуть-чуть переопределить некоторые моменты. Кстати, в последних версиях MODX-а были серьезные изменения в JS-е, и хотя я знаю где ошибка вылезает, фиксить ее не планирую, так что минимальная версия MODX-а для modxSDK — 2.2.6. Имейте ввиду.
Так же в составе пакета остался навигатор классов. То есть можно легко просмотреть имеющиеся классы и методы в php-файлах.
?
Какие плюшки намечаются
Вообще не буду сейчас много писать, но много чего будет обязательно. Это и быстрая подстановка кода (перетащил сниппет, окошко всплыло с параметрами сниппета, указал параметры, нажал ОК, сформировался код $modx->runSnippet('snippetname', $params); Это же и для процессоров будет сделано). Надеюсь и автозаполнение MODX-классов и методов будет реализовано, но это пока не в приоритетах.
Так же обязательно будет реализована быстрая сборка пакетов (для этого modxSDK вообще изначально и создавался). Будут средства контроля версий, миграции и т.п. В общем нас ждет много вкусностей :-)
Еще планирую сделать редактор map-файлов xPDO-объектов, чтобы прям в админке можно было их создавать, и создавать таблицы, редактировать колонки и т.п. (Зачем это надо, можно уловить здесь)
Но почему же сегодня великий день? Ведь изменения по сравнению с первой версией относительно не большие, но тогда не был великий день. А великий он той причине, что я решил modxSDK выложить в открытый доступ :-) Вот только час назад решил. Хотя еще вчера все еще придерживался мысли, что пакет будет закрытый, и сегодня хотел выложить его только для членов Клуба.
В общем, вот сам пакет: modx.com/extras/package/modxsdk
Вот проект на gitHub: github.com/Fi1osof/modxSDK
Помощь в проекте.
Само собой, можно какие-то плюшки дописывать и слать PR на гитхабе. Но можно и материально поддержать. У кого возникнет желание, стучите в личку, обсудим удобные варианты.
UPD: Кстати, еще планируется чат событий в системе, чтобы можно было видеть кто что делает. Очень нужно, когда сразу несколько людей работают с проектом.
UPD2: Я вот сегодня реально ощутил, что теперь не привязан к рабочему месту. В тему посмотреть отличный ролик с c9.io (кстати, Ace как раз ими и разрабатывался).
UPD3: Если у кого установлен уже Ace и его версия ниже 1.4.0, обновляйте его, так как всплыл конфликт с подсветкой. С последней версией конфликт не замечен.
Кстати, Илья ilyautkin должен быть очень доволен, он как раз в основном с сайтами через админку и работает.
обязательно заценим)
Николай, молодца! Приятно видеть, профессионала своего дела за работой, полного энтузиазма! Ждём новых статей и видеоуроков по новым фишкам, которые удалось узнать в ходе этой кропотливой работы
Спасибо :-)
А моментов здесь действительно выявляется очень много. В частности, хотя контроллеры по своей сути очень похожи на процессоры, они демонстрируют свою полную недоработку :-) Практически нет точек вхождения, проверок и т.п. Возможно в процессе возникнет видение по унификации их, чтобы привести к единому базовому классу. Кстати, контроллеры планируется добавить и в сборку в php-шаблоны, чтобы их можно было расширять для разных шаблонов.
Выложил новую версию. Добавил Ace локально.
Правда проявляется некорректная работа Ace-а, когда включено сжатие скриптов. Он путает корневой путь. Надо ковырять Ace, чтобы найти как ему устанавливать явный путь до библиотеки.
Ого-го))) Вот это супер! Прямо сейчас поставлю на рабочий свой проект! Придется отложить изучение IDE)))
Блин, супер, серьезно — очень хорошая новость))
Рад, что тебя порадовал :-)
Выложил новую версию 1.2.2
Пофиксил проблему с потерей путей Ace-а, когда компрессия скриптов включена. За помощь отдельное спасибо Данилу aka danik
Выложил версию 1.2.4
Теперь автоподстроение по высоте есть, и главное — Ctrl+S работает :-)