UMIhelp

Разработка сайта на UMI.CMS => Настройка системы и модулей => Тема начата: Seweryss от 26 Декабря 2013, 20:45:43

Название: Валидация поля формы
Отправлено: Seweryss от 26 Декабря 2013, 20:45:43
Доброго дня уважаемое сообщество. Столкнулся с такой проблемой.
Требуется сделать простую валидацию номера телефона в форме регистрации. Сделал все как здесь описано. http://wiki.umisoft.ru/%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BD%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE_%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%B0_%D0%B2%D0%B0%D0%BB%D0%B8%D0%B4%D0%B0%D1%86%D0%B8%D0%B8_%D0%BF%D0%BE%D0%BB%D1%8F_%28restriction%29 (http://wiki.umisoft.ru/%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BD%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE_%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%B0_%D0%B2%D0%B0%D0%BB%D0%B8%D0%B4%D0%B0%D1%86%D0%B8%D0%B8_%D0%BF%D0%BE%D0%BB%D1%8F_%28restriction%29) Но, полоса с форматом значения в типах данных становится неактивной когда добавляю название класса class_prefix в таблицу. Если префикс несуществующий - все работает, но, само собой, не выводится мой формат.  
Подскажите, пожалуйста, что я не так делаю.

У меня еще и зашифрованный код в системных классах umi. Очень неудобно работать, даже не могу посмотреть как там все устроено в базовом классе для Валидации.
Например:
<?php
 abstract class baseRestriction {protected $errorMessage = 'restriction-error-common',     $id, $title, $classPrefix, $fieldTypeId;final public static function get($v6b1a57fa235477758817df3c91158006) {$v6b1a57fa235477758817df3c91158006 = (int) $v6b1a57fa235477758817df3c91158006;$vac5c74b64b4b8352ef2f181affb5ac2a = "SELECT `class_prefix`, `title`, `field_type_id` FROM `cms3_object_fields_restrictions` WHERE `id` = '{$v6b1a57fa235477758817df3c91158006}'";$result = l_mysql_query($vac5c74b64b4b8352ef2f181affb5ac2a);if(list($v6f65638723a69dfa99474478b83b7b17, $vd5d3db1765287eef77d7927cc956f50a, $ve2aeb4e882d60b1eb4b7c8cd97986a28) = mysql_fetch_row($result)) {$v47826cacc65c665212b821e6ff80b9b0 = CURRENT_WORKING_DIR . '/classes/system/subsystems/models/data/restrictions/' . $v6f65638723a69dfa99474478b83b7b17 . '.php';$v6f66e878c62db60568a3487869695820 = $v6f65638723a69dfa99474478b83b7b17 . 'Restriction';if(is_file($v47826cacc65c665212b821e6ff80b9b0) == false) {return false;}if(!class_exists($v6f66e878c62db60568a3487869695820)) {require $v47826cacc65c665212b821e6ff80b9b0;}if(class_exists($v6f66e878c62db60568a3487869695820)) {$v3dadfaeb46ec74762b37de11fea7605c = new $v6f66e878c62db60568a3487869695820($v6b1a57fa235477758817df3c91158006, $v6f65638723a69dfa99474478b83b7b17, $vd5d3db1765287eef77d7927cc956f50a, $ve2aeb4e882d60b1eb4b7c8cd97986a28);if($v3dadfaeb46ec74762b37de11fea7605c instanceof baseRestriction) {return $v3dadfaeb46ec74762b37de11fea7605c;}else {return false;}}else {return false;}}else {return false;}}final public static function getList() {$vac5c74b64b4b8352ef2f181affb5ac2a = "SELECT `id` FROM `cms3_object_fields_restrictions`";$result = l_mysql_query($vac5c74b64b4b8352ef2f181affb5ac2a);$v81e12dac658cfd4c590486dd6f7523cf = array();while(list($vb80bb7740288fda1f201890375a60c8f) = mysql_fetch_row($result)) {$v3dadfaeb46ec74762b37de11fea7605c= self::get($vb80bb7740288fda1f201890375a60c8f);if($v3dadfaeb46ec74762b37de11fea7605c instanceof baseRestriction) {$v81e12dac658cfd4c590486dd6f7523cf[] = $v3dadfaeb46ec74762b37de11fea7605c;}}return $v81e12dac658cfd4c590486dd6f7523cf;}final public static function add($v6f65638723a69dfa99474478b83b7b17, $vd5d3db1765287eef77d7927cc956f50a, $ve2aeb4e882d60b1eb4b7c8cd97986a28) {$v6f65638723a69dfa99474478b83b7b17 = l_mysql_real_escape_string($v6f65638723a69dfa99474478b83b7b17);$vd5d3db1765287eef77d7927cc956f50a = l_mysql_real_escape_string($vd5d3db1765287eef77d7927cc956f50a);$ve2aeb4e882d60b1eb4b7c8cd97986a28 = (int) $ve2aeb4e882d60b1eb4b7c8cd97986a28;$vac5c74b64b4b8352ef2f181affb5ac2a = <<<SQL
INSERT INTO `cms3_object_fields_restrictions`
(`class_prefix`, `title`, `field_type_id`)
VALUES ('{$v6f65638723a69dfa99474478b83b7b17}', '{$vd5d3db1765287eef77d7927cc956f50a}', '{$ve2aeb4e882d60b1eb4b7c8cd97986a28}')
SQL;
   l_mysql_query($vac5c74b64b4b8352ef2f181affb5ac2a);return l_mysql_insert_id();}abstract public function validate($v2063c1608d6e0baf80249c42e2be5804, $v16b2b26000987faccb260b9d39df1269 = false);public function getErrorMessage() {return getLabel($this->errorMessage);}public function getTitle() {return getLabel($this->title);}public function getClassName() {return $this->classPrefix;}public function getId() {return $this->id;}public function getFieldTypeId() {return $this->fieldTypeId;}public static function find($v6f65638723a69dfa99474478b83b7b17, $ve2aeb4e882d60b1eb4b7c8cd97986a28) {$v81e12dac658cfd4c590486dd6f7523cf = self::getList();foreach($v81e12dac658cfd4c590486dd6f7523cf as $v3dadfaeb46ec74762b37de11fea7605c) {if($v3dadfaeb46ec74762b37de11fea7605c->getClassName() == $v6f65638723a69dfa99474478b83b7b17 && $v3dadfaeb46ec74762b37de11fea7605c->getFieldTypeId() == $ve2aeb4e882d60b1eb4b7c8cd97986a28) {return $v3dadfaeb46ec74762b37de11fea7605c;}}}protected function __construct($vb80bb7740288fda1f201890375a60c8f, $v6f65638723a69dfa99474478b83b7b17, $vd5d3db1765287eef77d7927cc956f50a, $ve2aeb4e882d60b1eb4b7c8cd97986a28) {$this->id = (int) $vb80bb7740288fda1f201890375a60c8f;$this->classPrefix = $v6f65638723a69dfa99474478b83b7b17;$this->title = $vd5d3db1765287eef77d7927cc956f50a;$this->fieldTypeId = (int) $ve2aeb4e882d60b1eb4b7c8cd97986a28;}};interface iNormalizeInRestriction {public function normalizeIn($v2063c1608d6e0baf80249c42e2be5804, $v16b2b26000987faccb260b9d39df1269 = false);};interface iNormalizeOutRestriction {public function normalizeOut($v2063c1608d6e0baf80249c42e2be5804, $v16b2b26000987faccb260b9d39df1269 = false);};?>
Название: Re:Валидация поля формы
Отправлено: Seweryss от 26 Декабря 2013, 21:16:39
П.С. еще такой вопрос. В типах данных "Пользователь" есть нередагируемые поля (например Фамилия Отечество) - как мне можно сделать, чтобы они были обязательны? Required asteriks не помогает, к сожалению.
Название: Re:Валидация поля формы
Отправлено: admin от 30 Января 2014, 09:53:47
Доброго дня уважаемое сообщество. Столкнулся с такой проблемой.
Требуется сделать простую валидацию номера телефона в форме регистрации. Сделал все как здесь описано. http://wiki.umisoft.ru/%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BD%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE_%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%B0_%D0%B2%D0%B0%D0%BB%D0%B8%D0%B4%D0%B0%D1%86%D0%B8%D0%B8_%D0%BF%D0%BE%D0%BB%D1%8F_%28restriction%29 (http://wiki.umisoft.ru/%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BD%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE_%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%B0_%D0%B2%D0%B0%D0%BB%D0%B8%D0%B4%D0%B0%D1%86%D0%B8%D0%B8_%D0%BF%D0%BE%D0%BB%D1%8F_%28restriction%29) Но, полоса с форматом значения в типах данных становится неактивной когда добавляю название класса class_prefix в таблицу. Если префикс несуществующий - все работает, но, само собой, не выводится мой формат.  
Подскажите, пожалуйста, что я не так делаю...

Какая версия umi?

П.С. еще такой вопрос. В типах данных "Пользователь" есть нередагируемые поля (например Фамилия Отечество) - как мне можно сделать, чтобы они были обязательны? Required asteriks не помогает, к сожалению.

вам нужен skip-lock параметр, см. тут http://umihelp.ru/forum/index.php/topic,1736.msg7403.html#msg7403