MiniShop2 и греческий язык
В форме заказа не проходят валидацию греческие символы (например Σχήμα κουτιού και)
На счет php не знаю, но js точно не пропускает:
Не могу найти в default.js блок, который отвечает за валидацию.
На счет php не знаю, но js точно не пропускает:
Не могу найти в default.js блок, который отвечает за валидацию.
Комментарии: 7
а в параметре оплаты/доставки валидация данных полей отключена?
Отмечено как обязательное для заполнения, но MiniShop видит его как пустое, если введены греческие буквы.
Валидация проходит в msorderhandler.class.
Есть 2 эвента: msOnBeforeValidateOrderValue до валидации и msOnValidateOrderValue — после валидации.
Сейчас receiver пытается расставить символы согласно русскому и англ языку. (Имя)
Вам нужно попробовать на эвенте отлавливать значение, просто проверять его наличие и ставить валидацию в true
Есть 2 эвента: msOnBeforeValidateOrderValue до валидации и msOnValidateOrderValue — после валидации.
Сейчас receiver пытается расставить символы согласно русскому и англ языку. (Имя)
Вам нужно попробовать на эвенте отлавливать значение, просто проверять его наличие и ставить валидацию в true
Спасибо!
В итоге расширил класс:
<?php
class myOrderHandler extends msOrderHandler {
public function validate($key, $value) {
switch ($key) {
case 'receiver':
// убираем регулярку и просто проверяем чтобы поле не было пустым
if (empty($value)) {
$value = false;
}
break;
// Конечно, также можно переопределить и другие валидаторы
// Если прислано поле, которого тут нет - отправляем в дефолтный класс
default:
return parent::validate($key, $value);
}
if ($value === false) {
$value = '';
}
return $value;
}
}
супер)
Ребят, подскажите по событиям msOnBeforeValidateOrderValue и msOnValidateOrderValue
Задача такая. Есть скрытое пол $typepayer значения либо 1 либо 2. Если 2 то нужно проверить заполненость ИНН
по логике нужно вернуть ключ поля с false, но что найти не могу и понять…
Не нужно добавлять поле ИНН в где-то в msOnBeforeAddToOrder или msOnAddToOrder?
Задача такая. Есть скрытое пол $typepayer значения либо 1 либо 2. Если 2 то нужно проверить заполненость ИНН
switch ($modx->event->name) {
case "msOnValidateOrderValue":
if ($key === 'typepayer') {
$data = $order->get();
// Если Юр лицо(val = 2) проверяем заполненость ИНН
if($data['typepayer'] == 2 && empty($data['inn'])){
$modx->log(1, print_r($data, 1));
$modx->log(1, print_r($key, 1));
//$modx->event->returnedValues['value'] = false;
//$modx->event->output("Yыфвфы");
//return INN false
}
}
break;
}
Никак не соображу как вернуть error для поля инн, чтобы оно загорелось красным, в документации ничего не нашел про ответ плагинов и верно ли я выбрал событие под такую задачу?по логике нужно вернуть ключ поля с false, но что найти не могу и понять…
Не нужно добавлять поле ИНН в где-то в msOnBeforeAddToOrder или msOnAddToOrder?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.