StaticElementsLive

Дополнение позволяет автоматически создавать элементы Modx на основании статических файлов созданных в определенных директориях, что позволяет ускорить разработку сайтов в IDE.

Видео-обзор

Prihod
07 марта 2022, 16:01
modx.pro
1
1 463
+15
Поблагодарить автора Отправить деньги

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

Дима Сайт old см. профиль
07 марта 2022, 16:21
0
Привет! Отличная штука!
Вопрос: на какое событие срабатывает сканирование директорий, предполагаю что на загрузку страницы админки. Тогда вопрос, если я отключу настройку автосканирования, это снимет всю «создаваемую нагрузку» на файловую систему?

И ещё: бывает надо переместить статичный файл (чанк например) из одной директории в другую, предполагаю что плагин создаст дубликат в этом случае? Или эта ситуация как-то обрабатывается?
    Prihod
    07 марта 2022, 16:39
    0
    1. Да
    2. Ничего не будет происходить так как если элемент с таким названием есть то он игнорируется, возможно в новую версию добавлю опцию которая позволит для статических элементов проверять наличие файлов в указанном пути и если его нет но есть файл с таким названием где то в другом месте то использовать его
      Дима Сайт old см. профиль
      07 марта 2022, 17:24
      0
      1. Класс
      2. Лучше уж пусть дубликат создаёт чем по названию сверяет. Было бы неприятно потерять код в случае нестыковок.

      Вот бы ещё решение для однократного сканирования.
      У меня вот разработка всегда на тестовой копии, и там я включу автосканирование. Сделал изменения, залил в гит.

      А вот уже потом на продакшене сделал pull и в админке нажал бы кнопочку (ну и привязал ресурсы к новым шаблонам, если надо)

      Если компонент не создает пункт меню с кнопочкой «просканировать», то может подскажешь быстрый способ создать её руками? Нет ли коннектора который можно пнуть чтобы он там провернул шестеренки под капотом ?)))

      P.S. возможно мне стоило бы использовать gitify и он такое умеет, но я не использую(
        Prihod
        08 марта 2022, 15:53
        0
        Кнопку для сканирования в новую версию добавлю. Сейчас из консоли modx можно просто выполнить код

        $staticelementslive = $modx->getService('staticelementslive', 'StaticElementsLive');
        $staticelementslive->runProcessor('web/element/scan');
        А вообще изначально задумка все это дело подружить с gulp в реальном времени создавать и перемещать элементы
    Prihod
    09 марта 2022, 21:14
    0
    UPD 1.0.1-beta
    — Добавлена в меню кнопка сканирования элементов
      Николай Савин
      09 марта 2022, 23:36
      0
      Интересно, а в какой момент beta станет стабильным релизом? Как ты для себя определяешь этот рубеж?
        @Prihod привет!

        Осваиваю плагин, нравится очень, но накопился небольшой багрепорт:
        • 2 набора системных настроек, и работает «не тот, что ожидалось» :)
        • добавляет описание к создаваемым элементам, но т.к. оно ничего не означает, лучше бы не добавлял

        Подробности на скриншоте:


        И на словах ещё дополню: я раньше пользовался StaticSaver. И под него я создавал отдельные источники файлов для каждого вида элементов т.к. плагин позволяет указать их отдельно. По идее это более MODX-way, чем прямые пути в сис. настройки писать, т.к. в источнике можно настроить ещё и ограничения по форматам файлов, поддерживаются разные виды хранилищ (хоть всё это и не нужно сейчас). Но это так, ворчание, как сейчас — ок работает (но я наткнулся на то что сис. настройка для источника не та подцепилась и насоздавал десятки чанков с привязкой к Загрузкам т.к. стандартный источник с id=1 во избежание помойки сразу направляю в /assets/uploads/ )
        Miša Bulic
        10 марта 2022, 10:05
        0
        А какая выгода от дополнения по сравнению с обычными файлами pdotools? Есть сравнение? И если я работаю только с IDE? Мне нужно каждый раз админку обновлять, чтобы чанк обновился?
          deleted
          11 марта 2022, 00:39
          0
          Ну вот у нас на работе коллеги не пользуются IDE, редактируют код из админки. А так и мне и им удобно будет. Плюс многие сниппеты не работают с файловыми чанками.
          Спасибо автору, сам недавно начинал что-то подобное делать, получается доделывать не придётся)
            Артур Шевченко
            11 марта 2022, 00:50
            0
            Плюс многие сниппеты не работают с файловыми чанками.
            А можно подробнее? Какие это многие?
              deleted
              11 марта 2022, 01:16
              0
              Насчёт «многие» перегнул, наверное) Вообще из готовых сниппетов использую в основном Formit и pdoTools. Formit не поддерживает (возможно ошибаюсь). Чанки писем в minishop ещё.
                Артур Шевченко
                11 марта 2022, 12:42
                0
                Если ты не используешь AjaxForm, то наверное FormIt не поддерживает файловые чанки. А в minishop2 как минимум можно сделать include из файла, думаю должен сработать.
            Prihod
            11 марта 2022, 10:37
            0
            Чанки не обновляются, они один раз создаются если их нет, а дальше ты как обычно с ними работаешь правя если нужно данные в файле из ide или из админки так как они тоже будут сохранены в файл. Единственное что после правки файла из ide нужно чистить кэш сайта или на момент разработки отключить кэширование, поэтому как я уже писал выше в планах все это подружить с gulp и тогда вся работа будет больше автоматизирована
              deleted
              11 марта 2022, 10:54
              0
              Единственное что после правки файла из ide нужно чистить кэш сайта или на момент разработки отключить кэширование
              Если использовать ZoomX и Smarty, то не нужно)
                Miša Bulic
                11 марта 2022, 13:28
                0
                да, если кеш надо чистить каждый раз то смысле совсем никакого нет. Ждём обновления
              Prihod
              11 марта 2022, 10:52
              0
              Плюс многие сниппеты не работают с файловыми чанками.
              А можно подробнее
              вот тут я либо не так понял о чём речь или ты не понял что делает компонент. Когда ты создаёшь файл в определенной директории компонент создаёт для него, если его нет, определенный элемент modx, например чанк с указанием того что он статический, что значит что его данные не хранятся в БД, а хранятся в файле и дальше использование этого чанка в modx ничем не отличается от классического
                deleted
                11 марта 2022, 11:00
                0
                вот тут я либо не так понял о чём речь или ты не понял что делает компонент.
                Это был ответ на вопрос
                А какая выгода от дополнения по сравнению с обычными файлами pdotools?
                Павел Бигель
                14 марта 2022, 12:53
                0
                Супер!
                Я как раз хотел сделать что-то похожее.
                  deleted
                  16 марта 2022, 03:52
                  0
                  Можете ли сделать, чтоб путь к статическому файлу относительный был?
                  А то у меня вот так: /home/public_html/../core/elements/templates/product.tpl
                    deleted
                    16 марта 2022, 04:08
                    0
                    У источника файлов:
                    basePath: ../core/, basePathRelative: да
                    Может из-за этого.
                      deleted
                      16 марта 2022, 12:39
                      0
                      В методе prepareFileMediaSourcePath добавил:
                      $path = str_replace([$source->getBasePath(), MODX_CORE_PATH], '', $file);
                      Видимо некорректно работает, когда ядро вынесено за public_html.

                      Кстати, для чего подключается столько css и js файлов? Там же вроде просто кнопка добавляется.
                      Stepan
                      22 марта 2022, 17:32
                      0
                      так прям и пиши /твоя папка/снипеты/
                      Stepan
                      22 марта 2022, 17:16
                      0
                      ЭТО БОЖЕСТВЕННО!!!
                        AGACFER
                        06 февраля 2023, 14:57
                        0
                        Мне как особому извращенцу нужно, что бы название чанков, написанные на русском, автоматически транслитировались на английский при создании файла. как сделать? :)
                          Prihod
                          06 февраля 2023, 15:08
                          0
                          Из коробки такой возможности нет
                            AGACFER
                            06 февраля 2023, 15:10
                            0
                            а может быть можно как то интегрировать обработку названия с помощью translitor?
                              Prihod
                              06 февраля 2023, 15:17
                              0
                              перевести не проблема, проблема как потом сопоставлять если название файлов и название элементов в админки на разных языках, поэтому нужно чуть менять код
                          Stepan
                          12 мая 2024, 03:51
                          0
                          @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, '\\', '\/' );
                          может сразу не обращать внимание на пути ОС?
                            Prihod
                            12 мая 2024, 13:48
                            0
                            Ну так они у тебя такие же будут если ты не будешь использовать дополнение
                            Виктор
                            15 октября 2024, 21:29
                            0
                            Спасибо за ваш отличный плагин StaticElementsLive! Он действительно очень помогает в работе. Хотел бы предложить небольшую доработку, которая, на мой взгляд, сделает его еще удобнее.

                            Было бы полезно добавить в панель администратора кнопку для быстрого включения и отключения кэширования, которая также будет отображать текущее состояние параметра cache_resource. Это особенно актуально при разработке, когда требуется временно отключить кэш, чтобы сразу видеть изменения. Таким образом, можно будет быстро переключаться между режимами и видеть актуальный статус кэширования прямо на панели.

                            Готов оплатить эту доработку. Буду рад обсудить детали и стоимость, если вас заинтересует эта идея.
                              Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                              30