Кнопка [сбросить настройки темы дизайна] без(!) сброса внесённых правок в html шаблоны

2

Предыстория.

Покупатель темы дизайна, удовлетворённо ковыряется в настройках. Вносит правки в html шаблонах.
Внезапно, он понимает, что всё не так и жизнь тлен. Ему хочется чтобы было как на демо-примере! Но как это сделать? Как вернуть настройки в исходное состояние? 

Да конечно, пользователь должен был сначала сделать экспорт настроек, а теперь он мог бы их импортировать и все настройки сбросились бы. Но не тут то было! Пользователь это не сделал и не будет делать никогда. Никогда!

Да есть стандартный функционал, есть кнопка с названием [Сбросить все изменения] с удивительной иконкой в виде веника. Но! Но пользователь уже внес правки в код, вставил код говносчётчиков, или онлайн-говноконсультантов или поменял слова, фразы, цвета ... да даже некоторые плагины просят внести правки в HTML шаблон.

Нужно чтобы HTML код (правки в шаблонах) остался прежним. А кнопка [Сбросить все изменения] - убирает правки в шаблонах.

Почему рядом с кнопкой [Cохранить] нет кнопки [Cбросить настройки]? Где кнопка?


Собственно предложение:

Предлагаю ввести дополнительную обязательную спецификацию для тем дизайна.

1) У каждого элемента настроек (input, select, textarea) сделать атрибут data-default="%default_value%" собственно с дефолтными значениями

2) Рядом с кнопкой [Cохранить] сделать кнопку [Сбросить настройки] 


<form>
    <input type="text" value="text" data-default="text">
    <select data-default="1">
        <option value=1>1</option>
        <option value=2>2</option>
    </select>
    <input type="button" class="button blue js-reset" value="Сбросить настройки">
</form>
<script>
$(document).on("click", ".js-reset", function() {
    $(this).closest("form").find("input:not(input[type=button], input[type=submit], input[type=reset]), select, textarea").each(function(index) {
        $(this).val($(this).data("default"))
    });
});  
</script>

Вот рабочий пример.

Что сложного?

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

  • +1


    Ему хочется чтобы было как ан демо-примере! Но как это сделать? Как вернуть настройки в исходное состояние?

    интересно, часто ли на демосайтах используются настройки по умолчанию?

  • +1
    Алексей Алексей Webasyst 3 апреля 2021 22:37 #

    Что мешает сделать клон темы с текущими настройками, назвать допустим Вариант A.
    Оригинал сбрасываем и из него копируем нужные параметры или настраиваем другое Вариант Б, чтобы его тоже потом клонировать и сделать А/Б тестирование.

    Счётчики и коды лучше вставлять в отдельные блоки или в настройки сайта.

    • 0
      @webasyst24 @webasyst24 4 апреля 2021 06:22 #

      Да это очень хорошее решение. Но мы же взрослая компания. Зачем нам костыли? Почему нельзя сделать нормально? 

      Смысл идеи и предложения в том чтобы улучшить интерфейс, сделать удобно для каждого пользователя в том числе самого "тупого", скажем так. Вы же сейчас пилите новый редактор товара. По сути цель стоит такая же, сделать удобно.

      Если не хотите вводить функционал обязательным, сделайте хотя-бы чтобы была такая возможность опционально. А темоделы уже сами решат, доработают они свои темы дизайна или нет.

    • +3
      replicant replicant 4 апреля 2021 08:40 #

      Решение вижу немного не так. Спецификация, закладывающая default value конечно здорово, но её можно и не дождаться вовсе, а уже сейчас и без неё всё реализуемо. Грубо говоря, тема состоит из шаблонов и хранящего настройки файла *.xml.

      Для возврата настроек достаточно взять *.xml файл из каталога установки (если это не было развертывание из архива, а обычная установка в Инсталлере) и переписать его содержимым аналогичный в /wa-data/public в нужной теме. Вновь созданные html, css, js могут стать недоступными в редакторе и, скорее всего, такая перезапись должна быть частичной и касаться только секции <settings>...</settings>. Об этом стоит подумать.

      Либо сделать это из скрытой копии настроек по-умолчанию, уложенной в резервный xml среди пачки шаблонов автором темы. Этот резерв активируется через опции какого-нибудь admin-sidebar-panel.html для управления прямо во фронте.

      Некоторые темы допускают загрузку графических файлов (лого, баннеры и т.п.). С этим что делать? Возвращать оригинальные или забить и оставить загруженное пользователем?

      Реализовать всё подобное можно и сейчас без помощи со стороны разработчиков WA и без спецификации для тем.

      Пусть авторы сами решат надо ли им прикручивать такой функционал или нет.

      Есть ещё решение. Написать простенький плагин (и срубить бабла), работающий с настройками settings из xml файлов и добавляющий функционал по сбросу на страницу управления Оформлением тем.

      • +1
        @webasyst24 @webasyst24 8 апреля 2021 00:05 #

        На изображения можно забить. Все уже научились добавлять картинку. Основную трудность представляет поля в которых например перечислены идентификаторы секций через запятую. Простой обыватель если случайно удалит или поменяет их местами, потом не может их восстановить. Я уверен некоторые пользователи даже не понимают что означают эти странные слова на латинице через запятую, но это уже отдельная история. Настройки тем дизайна это отдельный лютый пиздец. Люди иногда банально не могут увеличить количество товаров в списке "Новинки" на главной. Пользователь просто тонет всех этих настройках. 

        Добавить комментарий

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