modx-pro / miniShop2

Second version of simple online shop for MODX Revolution
GNU General Public License v2.0
149 stars 128 forks source link

Возможность изменения названия класса элемента формы #msOrder, при во… #873

Open OlegShchavelev opened 1 year ago

OlegShchavelev commented 1 year ago

…зникновении ошибки ввода.

Что оно делает?

Дает возможность изменить класс error (ошибка валидации формы #msOrder) на усмотрение разработчика. Возможность стандартизации разметки шаблона с фреймворком Bootstap 5

Зачем это нужно?

Возможность использовать стили валидации формы фреймворка Bootstap 4/5. Единый стиль валидации форм на всем сайте, к примеру mvtForms2 использует стандартные стили Bootstap 4/5, miniShop2 свои стили.

Как это работает

Необходимо в переменную miniShop2Config записать в JS файле :

if (miniShop2Config) {
    miniShop2Config.Order = {
        inputErrorClassName: 'is-invalid'
    }
}

Получаем результат.

image

Связанные проблема(ы)/PR(ы)

538

OlegShchavelev commented 1 year ago

Друзья. Будет еще один коммит. Я хочу погрузиться в чекбоксы, радио и другие элементы.

GulomovCreative commented 1 year ago

@OlegShchavelev

if (miniShop2Config) {
    miniShop2Config.Order = {
        inputErrorClassName: 'is-invalid'
    }
}

Это самый худший вариант.

OlegShchavelev commented 1 year ago

@OlegShchavelev

А чем он отличается от этого?

if (miniShop2Config) {
            miniShop2Config.inputNumber = {
                wrapperSelector: '.custom-number-wrap',
                minusSelector: '.custom-number-minus',
                plusSelector:  #'.custom-number-plus'
            }
            window.miniShop2 = new MiniShop(miniShop2Config);
}

Если статья в которой описаны рекомендации по структуре. Я посмотрел документацию, давно ее не смотрел, почитал анонсы Minishop2.

На текущий момент: Я еще не прошелся по всем вариантом типу возможных полей (к примеру select), а еще пакет msOrderFields там еще больше вариантов.

Предварительный набор параметров

if (miniShop2Config) {
  miniShop2Config.inputNumber = {
    wrapperSelector: '[data-ms-number]',
    minusSelector: '[data-ms-number-minus]',
    plusSelector: '[data-ms-number-plus]',
  }
  miniShop2Config.Order = {
    formErrorClassName: '',
    inputErrorClassName: 'is-invalid',
    inputErrorCheckboxClassName: 'is-invalid',
    inputErrorParentClassName: '',
    inputParentSelector: '.form-group',
    inputRequiredClassName: 'form-required',
  }
}