StaticElementsLive
Дополнение позволяет автоматически создавать элементы Modx на основании статических файлов созданных в определенных директориях, что позволяет ускорить разработку сайтов в IDE.
Видео-обзор
Поблагодарить автора
Отправить деньги
Комментарии: 30
Привет! Отличная штука!
Вопрос: на какое событие срабатывает сканирование директорий, предполагаю что на загрузку страницы админки. Тогда вопрос, если я отключу настройку автосканирования, это снимет всю «создаваемую нагрузку» на файловую систему?
И ещё: бывает надо переместить статичный файл (чанк например) из одной директории в другую, предполагаю что плагин создаст дубликат в этом случае? Или эта ситуация как-то обрабатывается?
Вопрос: на какое событие срабатывает сканирование директорий, предполагаю что на загрузку страницы админки. Тогда вопрос, если я отключу настройку автосканирования, это снимет всю «создаваемую нагрузку» на файловую систему?
И ещё: бывает надо переместить статичный файл (чанк например) из одной директории в другую, предполагаю что плагин создаст дубликат в этом случае? Или эта ситуация как-то обрабатывается?
1. Да
2. Ничего не будет происходить так как если элемент с таким названием есть то он игнорируется, возможно в новую версию добавлю опцию которая позволит для статических элементов проверять наличие файлов в указанном пути и если его нет но есть файл с таким названием где то в другом месте то использовать его
2. Ничего не будет происходить так как если элемент с таким названием есть то он игнорируется, возможно в новую версию добавлю опцию которая позволит для статических элементов проверять наличие файлов в указанном пути и если его нет но есть файл с таким названием где то в другом месте то использовать его
1. Класс
2. Лучше уж пусть дубликат создаёт чем по названию сверяет. Было бы неприятно потерять код в случае нестыковок.
Вот бы ещё решение для однократного сканирования.
У меня вот разработка всегда на тестовой копии, и там я включу автосканирование. Сделал изменения, залил в гит.
А вот уже потом на продакшене сделал pull и в админке нажал бы кнопочку (ну и привязал ресурсы к новым шаблонам, если надо)
Если компонент не создает пункт меню с кнопочкой «просканировать», то может подскажешь быстрый способ создать её руками? Нет ли коннектора который можно пнуть чтобы он там провернул шестеренки под капотом ?)))
P.S. возможно мне стоило бы использовать gitify и он такое умеет, но я не использую(
2. Лучше уж пусть дубликат создаёт чем по названию сверяет. Было бы неприятно потерять код в случае нестыковок.
Вот бы ещё решение для однократного сканирования.
У меня вот разработка всегда на тестовой копии, и там я включу автосканирование. Сделал изменения, залил в гит.
А вот уже потом на продакшене сделал pull и в админке нажал бы кнопочку (ну и привязал ресурсы к новым шаблонам, если надо)
Если компонент не создает пункт меню с кнопочкой «просканировать», то может подскажешь быстрый способ создать её руками? Нет ли коннектора который можно пнуть чтобы он там провернул шестеренки под капотом ?)))
P.S. возможно мне стоило бы использовать gitify и он такое умеет, но я не использую(
Кнопку для сканирования в новую версию добавлю. Сейчас из консоли modx можно просто выполнить код
$staticelementslive = $modx->getService('staticelementslive', 'StaticElementsLive');
$staticelementslive->runProcessor('web/element/scan');
А вообще изначально задумка все это дело подружить с gulp в реальном времени создавать и перемещать элементы
UPD 1.0.1-beta
— Добавлена в меню кнопка сканирования элементов
— Добавлена в меню кнопка сканирования элементов
Интересно, а в какой момент beta станет стабильным релизом? Как ты для себя определяешь этот рубеж?
@Prihod привет!
Осваиваю плагин, нравится очень, но накопился небольшой багрепорт:
• 2 набора системных настроек, и работает «не тот, что ожидалось» :)
• добавляет описание к создаваемым элементам, но т.к. оно ничего не означает, лучше бы не добавлял
Подробности на скриншоте:
И на словах ещё дополню: я раньше пользовался StaticSaver. И под него я создавал отдельные источники файлов для каждого вида элементов т.к. плагин позволяет указать их отдельно. По идее это более MODX-way, чем прямые пути в сис. настройки писать, т.к. в источнике можно настроить ещё и ограничения по форматам файлов, поддерживаются разные виды хранилищ (хоть всё это и не нужно сейчас). Но это так, ворчание, как сейчас — ок работает (но я наткнулся на то что сис. настройка для источника не та подцепилась и насоздавал десятки чанков с привязкой к Загрузкам т.к. стандартный источник с id=1 во избежание помойки сразу направляю в /assets/uploads/ )
Осваиваю плагин, нравится очень, но накопился небольшой багрепорт:
• 2 набора системных настроек, и работает «не тот, что ожидалось» :)
• добавляет описание к создаваемым элементам, но т.к. оно ничего не означает, лучше бы не добавлял
Подробности на скриншоте:
И на словах ещё дополню: я раньше пользовался StaticSaver. И под него я создавал отдельные источники файлов для каждого вида элементов т.к. плагин позволяет указать их отдельно. По идее это более MODX-way, чем прямые пути в сис. настройки писать, т.к. в источнике можно настроить ещё и ограничения по форматам файлов, поддерживаются разные виды хранилищ (хоть всё это и не нужно сейчас). Но это так, ворчание, как сейчас — ок работает (но я наткнулся на то что сис. настройка для источника не та подцепилась и насоздавал десятки чанков с привязкой к Загрузкам т.к. стандартный источник с id=1 во избежание помойки сразу направляю в /assets/uploads/ )
А какая выгода от дополнения по сравнению с обычными файлами pdotools? Есть сравнение? И если я работаю только с IDE? Мне нужно каждый раз админку обновлять, чтобы чанк обновился?
Ну вот у нас на работе коллеги не пользуются IDE, редактируют код из админки. А так и мне и им удобно будет. Плюс многие сниппеты не работают с файловыми чанками.
Спасибо автору, сам недавно начинал что-то подобное делать, получается доделывать не придётся)
Спасибо автору, сам недавно начинал что-то подобное делать, получается доделывать не придётся)
Плюс многие сниппеты не работают с файловыми чанками.А можно подробнее? Какие это многие?
Насчёт «многие» перегнул, наверное) Вообще из готовых сниппетов использую в основном Formit и pdoTools. Formit не поддерживает (возможно ошибаюсь). Чанки писем в minishop ещё.
Если ты не используешь AjaxForm, то наверное FormIt не поддерживает файловые чанки. А в minishop2 как минимум можно сделать include из файла, думаю должен сработать.
Чанки не обновляются, они один раз создаются если их нет, а дальше ты как обычно с ними работаешь правя если нужно данные в файле из ide или из админки так как они тоже будут сохранены в файл. Единственное что после правки файла из ide нужно чистить кэш сайта или на момент разработки отключить кэширование, поэтому как я уже писал выше в планах все это подружить с gulp и тогда вся работа будет больше автоматизирована
Единственное что после правки файла из ide нужно чистить кэш сайта или на момент разработки отключить кэшированиеЕсли использовать ZoomX и Smarty, то не нужно)
да, если кеш надо чистить каждый раз то смысле совсем никакого нет. Ждём обновления
Плюс многие сниппеты не работают с файловыми чанками.вот тут я либо не так понял о чём речь или ты не понял что делает компонент. Когда ты создаёшь файл в определенной директории компонент создаёт для него, если его нет, определенный элемент modx, например чанк с указанием того что он статический, что значит что его данные не хранятся в БД, а хранятся в файле и дальше использование этого чанка в modx ничем не отличается от классического
А можно подробнее
вот тут я либо не так понял о чём речь или ты не понял что делает компонент.Это был ответ на вопрос
А какая выгода от дополнения по сравнению с обычными файлами pdotools?
Супер!
Я как раз хотел сделать что-то похожее.
Я как раз хотел сделать что-то похожее.
Можете ли сделать, чтоб путь к статическому файлу относительный был?
А то у меня вот так: /home/public_html/../core/elements/templates/product.tpl
А то у меня вот так: /home/public_html/../core/elements/templates/product.tpl
У источника файлов:
basePath: ../core/, basePathRelative: да
Может из-за этого.
basePath: ../core/, basePathRelative: да
Может из-за этого.
В методе prepareFileMediaSourcePath добавил:
$path = str_replace([$source->getBasePath(), MODX_CORE_PATH], '', $file);
Видимо некорректно работает, когда ядро вынесено за public_html.
Кстати, для чего подключается столько css и js файлов? Там же вроде просто кнопка добавляется.
$path = str_replace([$source->getBasePath(), MODX_CORE_PATH], '', $file);
Видимо некорректно работает, когда ядро вынесено за public_html.
Кстати, для чего подключается столько css и js файлов? Там же вроде просто кнопка добавляется.
так прям и пиши /твоя папка/снипеты/
ЭТО БОЖЕСТВЕННО!!!
Мне как особому извращенцу нужно, что бы название чанков, написанные на русском, автоматически транслитировались на английский при создании файла. как сделать? :)
Из коробки такой возможности нет
а может быть можно как то интегрировать обработку названия с помощью translitor?
перевести не проблема, проблема как потом сопоставлять если название файлов и название элементов в админки на разных языках, поэтому нужно чуть менять код
@Prihod есть нюанс в путях… если сначала разрабатываешь на винде а потом нужно переносить на *nix сервера то слеши смотрят не в ту сторону… приходится сначала пробегаться по базе
UPDATE
modx_site_templates
SET
static_file = REPLACE ( static_file, '\\', '\/' );
UPDATE
modx_site_htmlsnippets
SET
static_file = REPLACE ( static_file, '\\', '\/' );
UPDATE
modx_site_snippets
SET
static_file = REPLACE ( static_file, '\\', '\/' );
может сразу не обращать внимание на пути ОС?
Ну так они у тебя такие же будут если ты не будешь использовать дополнение
Спасибо за ваш отличный плагин StaticElementsLive! Он действительно очень помогает в работе. Хотел бы предложить небольшую доработку, которая, на мой взгляд, сделает его еще удобнее.
Было бы полезно добавить в панель администратора кнопку для быстрого включения и отключения кэширования, которая также будет отображать текущее состояние параметра cache_resource. Это особенно актуально при разработке, когда требуется временно отключить кэш, чтобы сразу видеть изменения. Таким образом, можно будет быстро переключаться между режимами и видеть актуальный статус кэширования прямо на панели.
Готов оплатить эту доработку. Буду рад обсудить детали и стоимость, если вас заинтересует эта идея.
Было бы полезно добавить в панель администратора кнопку для быстрого включения и отключения кэширования, которая также будет отображать текущее состояние параметра cache_resource. Это особенно актуально при разработке, когда требуется временно отключить кэш, чтобы сразу видеть изменения. Таким образом, можно будет быстро переключаться между режимами и видеть актуальный статус кэширования прямо на панели.
Готов оплатить эту доработку. Буду рад обсудить детали и стоимость, если вас заинтересует эта идея.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.