Автор Тема: Цифры в поле с именем  (Прочитано 398 раз)

11 Июль 2018, 18:00:55
  • Новичок
  • *
  • Сообщений: 5
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Подскажите пожалуйста, где можно убрать запрет на ввод цифр в поле с именем и фамилией покупателя?
На сколько я понял, в поле с именем и фамилией нельзя использовать цифры и ., может еще что-то. Где это можно отредактировать?
11 Июль 2018, 19:25:26
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
В классе Customer.php
'lastname' =>   array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 32),
'firstname' =>   array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 32),
12 Июль 2018, 11:28:07
Ответ #2
  • Новичок
  • *
  • Сообщений: 5
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Этот код только проверяет, а где само правило находится, не подскажете?
12 Июль 2018, 11:56:22
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Какое правило? В админке нет настроек, проверка только в коде.
12 Июль 2018, 11:58:45
Ответ #4
  • Новичок
  • *
  • Сообщений: 5
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Я понимаю, что в админке такого правила нет и что оно где-то в коде. Вопрос в каком файле это правило прописано? На сколько я понимаю, где-то есть строка в котором перечислено то, что не допустимо вводить в это поле.
12 Июль 2018, 12:18:33
Ответ #5
  • Новичок
  • *
  • Сообщений: 5
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Разобрался :)
В папке classes лежит файл Validate.php где прописано правило:
    /**
     * Check for name validity
     *
     * @param string $name Name to validate
     * @return bool Validity is ok or not
     */
    public static function isName($name)
    {
        return preg_match(Tools::cleanNonUnicodeSupport('/^[^0-9!<>,;?=+()@#"°{}_$%:]*$/u'), stripslashes($name));
    }
Убрал 0-9 и в поле с именем можно сохранять цифры.
12 Июль 2018, 12:27:26
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Название файла Customer.php.
Удалить проверку 'validate' => 'isName'
12 Июль 2018, 12:45:08
Ответ #7
  • Новичок
  • *
  • Сообщений: 5
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Можно и удалить проверку целиком в Customer.php. Мне надо было убрать только цифры, поэтому я поправил само правило isName в Validate.php