Обновление (игнорировать изменения в вёрстке)

Есть ли возможность явно указать в коде, чтобы после обновления не затиралась вёрстка?

Например в JS (рефракторинг кода) в том же Pretier, Eslint и т.д. есть возможность одной строкой кода указать, что бы например кусок вёрстки или JS кода не менялся после форматирования. Это лишь только пример, для понимания сути вопроса.

Недавно в рассылках изменил форму по дизайн-макету, после недавнего обновление всё затёрлось, от слова совсем. Жутко не удобно. Получается, что при следующей рассылки придётся тоже самое делать, заново.

10 ответов

  • 2
    Максим Кожевников 7 декабря 2021 09:14 #

    Думаю, что это надо написать в "Идеи и предложения" https://support.webasyst.ru/fo.... Тогда появится голосовалка. Лично я однозначно поставлю плюс. Вопрос актуален для всех кто менял темы дизайна. А таких не мало.

  • 1

    Это не так просто, как пропуск части кода при форматировании. Придется использовать что-то вроде diff, причем в два этапа: вначале определить разницу между исходным файлом и 1.измененным пользователем 2.новой версией исходного. Остается вопрос: как быть если если обновление затрагивает измененный кусок кода?

    Поэтому реально осуществимым является только предложение в духе: не обновлять шаблон, если новая версия идентична исходнику старой

  • 1
    Alexander 7 декабря 2021 18:18 #

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

    Anton F, вопрос конкретно про изменения вёрстки, сам код приложения или модуля остается без изменений. Пример - форма обратной связи в рассылках или форма обратной связи из CRM

    • +1

      Я Вас и с первого раза прекрасно понял. Модули в терминологии WA - это frontend, backend. "Верстка" - это и есть шаблоны, раздел приложения Дизайн > Шаблоны.

      • +1
        Alexander Alexander 8 декабря 2021 13:23 #

        Я и говорю о модулях, где измененный frontend (например формат обратной связи для сайта) после обновления не меняется обратно, до изменений

    • +1
      Когда пользователь редактирует и сохраняет тему дизайна с помощью встроенного редактора, создаётся копия темы в директории wa-data/public/app_id/themes/. Эта копия используется для оформления страниц сайта. При этом можно устанавливать новые версии приложения и темы дизайна, но ранее сохранённая копия темы дизайна продолжит использоваться на сайте. Чтобы вместо старой сохранённой копии темы дизайна начать использовать обновлённую версию темы дизайна, нужно восстановить тему дизайна до оригинального состояния — старая сохранённая копия при этом удаляется до очередного сохранения в редакторе дизайна.
      сам код приложения или модуля остается без изменений

      если вы не изменяли тему в самом приложении, то ничего слетать и не будет, для этого нужно нажать "Сбросить все изменения"

  • 1

    Пример с eslint и prettier не валиден в контексте обновлений чего-то. Вот есть git merge, и он работает таким образом, что переводит процесс разрешения конфликтов при слиянии на ручник. А с обновлениями такая тема, что конфликты не останавливают основной процесс - новая версия для всех файлов даёт больше гарантий того, что все будет работать, тем более когда речь идёт о полностью автоматическом процессе. А реализовывать вычисление диффов с каким-то механизмом решения конфликтов - не самая простая задача, да и сделает обновления не автоматическими. А кто будет решать конфликты если они возникнут? Пользователь, который просто нажал кнопку и понятия не имеет, что от него хотят?

    Для вашей задачи как раз правильным подходом будет хранить в git весь сайт, и после обновлений плагинов выкачивать изменения и вручную восстанавливать какие-то части.

    Но и это не лучший подход, в идеальном мире вы не должны трогать исходный код, а если трогаете - не жалуйтесь на обновления, которые вам все удалили.

    • +1
      Для вашей задачи как раз правильным подходом будет хранить в git весь сайт, и после обновлений плагинов выкачивать изменения и вручную восстанавливать какие-то части.

      проще клонировать тему чем git ввести т.к. обновления тоже надо закоммитить

      обновление перезаписывает все файлы, хоть обычно изменены в лучшем случае 2-3 файла т.ч. введение простой проверки

      не обновлять шаблон, если новая версия идентична исходнику старой

      может если не решить проблему, то по крайней мере её облегчить.

  • 1
    Alexander 8 декабря 2021 13:34 #

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

    Про Git я прекрасно знаю и использую контрольные версии в проектах, но только для front-end разработки. Вообще в этой теме обращаюсь, как Front-end разработчик к Back-end разработчикам, которые плотно работают в WA. Мне не очень понятно, почему нельзя отделить банальный html и JS от php в рамках обновления модулей в WA. Да в том же Wordpress нет такой проблемы, хотя там тоже постоянно обновляются модули и версии WP, при этом любые изменения в верстке итогового компонента сайта остаются без изменений (отката), значит это возможно.

    • +1

      так сейчас WA так работает - обновляется тема в папке приложения, измененная копия в wa-data - нет. Напишите конкретнее где и какие файлы Вы меняете.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите