Modx + Git или редактирование сниппетов, чанков, шаблонов в IDE и без дрочки

Все мы любим modx, и просто обожаем работать с чанками, сниппетами и шаблонами через админку. Это так удобно, что через пол годика хочется блевануть, а когда появляется необходимость подружить это с гитом, ничего не остаётся как прибухнуть перед работой.

Каждый знает, что можно хранить ваши элементы в файловой системе, надо просто создать его через админку, и указать файл на сервере. И так 20 раз, ну или 40, сколько у вас там чанков обычно.

Итак, одним тёплым весенним вечером мне всё это надоело и я подумал: почему бы не подружить MODX и nodeJS, и как итог моих размышлений родился nodeJS модуль modx-fs. Что же он может? Пока ничего интересного:
  • вытягивает из базы чанки, сниппеты, шаблоны и тв
  • загружает это дело обратно в базу
Но уже сейчас вы можете подружить это с каким нибудь вотчером и загружать файлы в базу каждый раз когда вы их обновите — без регистрации и СМС! И конечно же вы теперь можете без лишней дрочи коммитить ваши чанки.

Выглядит это просто:


let modxFS = require('modx-fs');

let modxfs = new modxFS({
    host: 'database_host',
    user: 'userlogin',
    password: '******',
    database: 'database_name'
}, ['template', 'snippets', 'tv']);

//for pull data from database
modxfs.pull();

//for push data to database
modxfs.push();


Чего планирую добавить:
  • собственный вотчер
  • очистку кеша Modx после выгрузки в базу
  • генерация элемента в базе путём простого создания папки в ФС

https://github.com/vasenin26/modx-fs

Спасибо за внимание, очень интересно узнать ваше мнение по этому поводу.

7 комментариев

avatar
Интересно, но больше похоже на «из пушки по воробьям» (:
avatar
интересно! надо будет попробовать под эво с галпом. раньше для git использовал плагин staticElements, но у него иногда вылезали баги, что отнимает время. и бесит.
avatar
Вот более удобный вариант. Идея в nodejs оказалась крайне неудобной.

http://modx.im/blog/5696.html
avatar
Еще немного и дойдете до связки LoadElement + evoTwig.
avatar
ааа, фи… судя по коду это под revo. Удачи в поисках идеала;-)
avatar
Очень красиво сделано. Но на самом деле, возможно, надо просто немного доработать FileSource, чтобы он сам подхватывал новые сущности, то есть работал в обе стороны…
Сделал больше 100 сайтов на эволюшене. Никогда не горел желаниям ковыряться в файлах. Пока что не блеванул. Но тут уж у кого какой юзкейс
Комментарий отредактирован 2018-04-19 11:07:24 пользователем alexbeep
avatar
В общем и целом, ребятушки, идея оказалась крайне неудобной. За сим у кикнул репозиторий и накидал простой php-хелпер командной строки который создаёт сниппеты, чанки и шаблоны в базе, так же создаёт файл в ФС и линкует его к вашему элементу.

https://github.com/vasenin26/modxHelper
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.