Пример #1
0
 public function afterValidate()
 {
     if (!$this->hasErrors()) {
         $path = Yii::getPathOfAlias('webroot') . '/../uploads/in/images/' . $this->image;
         $pathStore = Yii::getPathOfAlias('webroot') . '/uploads/store/product/' . $this->image;
         if (file_exists($path)) {
             // Файл доступен по пути
             $data = @file_get_contents($path);
             $res = @imagecreatefromstring($data);
             if (is_resource($res)) {
                 // Файл коректно открывается
                 if (copy($path, $pathStore)) {
                     // Файл скопировался
                     $this->image = basename($path);
                     @unlink($path);
                     // удалить файл
                 } else {
                     $this->image = null;
                 }
             }
         } else {
             $this->image = null;
         }
     }
     return parent::afterValidate();
 }
Пример #2
0
 /**
  * Displays errors whether its present.
  * 
  * @see CModel::afterValidate()
  */
 protected function afterValidate()
 {
     if ($this->hasErrors()) {
         $errors = $this->getErrors();
         $this->displayErrors($errors);
     }
     parent::afterValidate();
 }
Пример #3
0
 public function afterValidate()
 {
     $return = parent::afterValidate();
     if (!$this->usuario->isValidToken()) {
         $this->addError('novaSenha', Yii::t('AlterarSenhaForm', 'Esta chave de acesso não é mais válida'));
     }
     return $return;
 }
Пример #4
0
 protected function afterValidate()
 {
     $dbConnection = $this->getDbConnection();
     try {
         $dbConnection->active = true;
     } catch (CDbException $e) {
         $this->addError('dbname', 'Не удалось подключиться к базе данных. Ошибка: "' . $e->getMessage() . '"');
     }
     return parent::afterValidate();
 }
Пример #5
0
 function afterValidate()
 {
     // If this method was called then
     // the model is already filled
     // with data and data is valid
     // so we can use it safely:
     $this->fullName = $this->firstName . ' ' . $this->lastName;
     // It's important to call parent class method
     // so all other event handlers are called
     return parent::afterValidate();
 }
Пример #6
0
 protected function afterValidate()
 {
     switch ($this->src_type) {
         case 1:
             $this->text = str_replace("\r", "", $this->text);
             break;
         case 2:
             // Читаем файл
             $file = CUploadedFile::getInstanceByName("TextSource[file]");
             $this->text = file_get_contents($file->tempName, false, null, -1, 500 * 1024);
             if ($this->text === false) {
                 $this->addError("file", "Файл не загрузился. Возможно, он слишком велик.");
                 return false;
             }
             // Кодировка
             if ($this->encoding != "UTF-8") {
                 $this->text = iconv($this->encoding, "UTF-8//IGNORE", $this->text);
             } elseif (!mb_check_encoding($this->text, "utf-8")) {
                 $this->addError("encoding", "Неправильная кодировка текста, выберите правильную.");
             }
             break;
         case 3:
             exit;
             if (!preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $this->url)) {
                 $this->addError("url", "Некорректный URL. Должно быть что-то вроде http://someawesomesite.ru/foo/bar/baz.html");
                 return false;
             }
             echo "<pre>";
             echo "Download text from '{$this->url}'\n";
             $html = Yii::app()->curl->run($this->url);
             file_put_contents("import.html", $html);
             print_r(Yii::app()->curl->info);
             echo "<hr />";
             // Пытаемся узнать кодировку, если её не указали явно
             if (preg_match('#<meta.*http-equiv=[\'"]?content-type[\'"]?.*>#is', $html, $res)) {
                 echo "Got meta http-equiv: " . htmlspecialchars($res[0]) . "\n";
             } elseif (preg_match('#<meta.*charset=\'content-type\'.*>#is', $html, $res)) {
                 echo "Got meta charset: " . htmlspecialchars($res[0]) . "\n";
             } elseif (Yii::app()->curl->info["content_type"] != "" && preg_match('#charset=([^; ]+)#i', Yii::app()->curl->info["content_type"], $res)) {
                 echo "Found content-type header with charset: {$res[0]}\n";
                 $charset = $res[1];
             } else {
                 echo "Can't find encoding information (assume ISO)\n";
                 $charset = "ISO−8859−1";
             }
             $charset = strtoupper($charset);
             $this->encoding = $charset;
             if ($charset != "UTF-8" && $charset != "UTF8") {
                 $html = iconv($charset, "UTF-8", $html);
             } elseif (!mb_check_encoding($html, "utf-8")) {
                 $this->addError("encoding", "Неправильная кодировка текста, выберите правильную.");
             }
             $html = preg_replace('#<head>.+</head>#isU', '', $html);
             $html = preg_replace('#<script[^>]*>.+</script[^>]*>#isU', '', $html);
             //				$html = preg_replace('#<style[^>]*>.+</style[^>]*>#isU', '', $html);
             echo "<b>HTML</b> = '" . htmlspecialchars($html) . "'";
             $p = new CHtmlPurifier();
             // идея в том, чтобы оставить только блочные теги, а потом по ним разбить на фрагменты
             $html = preg_replace('/\\s+/s', " ", $html);
             // привели всё к одной строке
             $html = preg_replace('#</[^>]*>#s', " ", $html);
             // убрали все закрывающие теги
             $html = preg_replace('/<(p|div|li|dd|dt|h\\d|address|blockquote)[^>]*>/s', "\n\n", $html);
             // все открывающие блочные теги - в два переноса строки
             $html = preg_replace('/<br[^>]*>/s', "\n", $html);
             // br - в одинарный перенос строки
             $html = strip_tags($html);
             $html = preg_replace('/[ \\t]+/', " ", $html);
             echo "</pre>";
             $this->text = $html;
             $this->chopper = 2;
             break;
         default:
             $this->addError("src_typ", "Системная ошибка. Обратитесь в техподдержку.");
             return false;
             break;
     }
     $this->text = trim($this->text);
     if ($this->text == "") {
         $this->addError("src_typ", "Текст не обнаружен. Иногда это случается, если выбрать неправильную кодировку.");
         return false;
     }
     if (mb_strlen($this->text) > 500 * 1024) {
         $this->addError("src_typ", "Слишком большой текст. Пожалуйста, разбейте его на несколько глав, не более 500 КБ каждая.");
         return false;
     }
     return parent::afterValidate();
 }
Пример #7
0
 protected function afterValidate()
 {
     $this->ls_id = $this->gs_list[$this->gs_id]['login_id'];
     parent::afterValidate();
 }
Пример #8
0
 public function afterValidate()
 {
     $this->putToMemory();
     parent::afterValidate();
 }
Пример #9
0
 protected function afterValidate()
 {
     parent::afterValidate();
     $this->password = '';
     $this->password_repeat = '';
 }
Пример #10
0
 /**
  * After the standard validation is completed, check the database connections.
  * @see CModel::afterValidate()
  */
 public function afterValidate()
 {
     parent::afterValidate();
     if (count($this->getErrors()) == 0) {
         //check memcache first, since creating the db / user should be last.
         if ($this->memcacheHostname != null) {
             if ($this->memcachePortNumber == null) {
                 $this->addError('memcachePortNumber', Zurmo::t('InstallModule', 'Since you specified a memcache ' . 'hostname, you must specify a port.'));
                 return;
             }
             $memcacheResult = InstallUtil::checkMemcacheConnection($this->memcacheHostname, (int) $this->memcachePortNumber);
             if ($memcacheResult !== true) {
                 $this->addError('memcacheHostname', Zurmo::t('InstallModule', 'Error code:') . " " . $memcacheResult[0] . '<br/>Message(Memcached): ' . $memcacheResult[1]);
                 return;
             }
         }
         if (!$this->hostInfo) {
             $this->addError('hostInfo', Zurmo::t('InstallModule', 'Please enter server IP or URL.'));
             return;
         } else {
             if (strpos($this->hostInfo, 'http://') === false && strpos($this->hostInfo, 'https://') === false) {
                 $this->addError('hostInfo', Zurmo::t('InstallModule', 'Host Info must start with "http://" or "https://".'));
                 return;
             }
         }
         if ($this->databaseAdminUsername != null) {
             if ($this->databaseAdminPassword == null) {
                 $this->addError('databaseAdminPassword', Zurmo::t('InstallModule', 'Since you specified a database ' . 'admin username, you must enter a password'));
                 return;
             }
             $connectionResult = DatabaseCompatibilityUtil::checkDatabaseConnection($this->databaseType, $this->databaseHostname, $this->databaseAdminUsername, $this->databaseAdminPassword, (int) $this->databasePort);
             if ($connectionResult !== true) {
                 $this->addError('databaseAdminUsername', Zurmo::t('InstallModule', 'Error code:') . " " . $connectionResult[0] . '<br/>Message: ' . $connectionResult[1]);
                 return;
             }
             $userExistsResult = DatabaseCompatibilityUtil::checkDatabaseUserExists($this->databaseType, $this->databaseHostname, $this->databaseAdminUsername, $this->databaseAdminPassword, (int) $this->databasePort, $this->databaseUsername);
             if ($userExistsResult === true) {
                 $this->addError('databaseUsername', Zurmo::t('InstallModule', 'You have specified an existing user. ' . 'If you would like to use this user, then do not specify the database admin username and ' . 'password. Otherwise pick a database username that does not exist.'));
                 return;
             }
             $databaseExistsResult = DatabaseCompatibilityUtil::checkDatabaseExists($this->databaseType, $this->databaseHostname, $this->databaseAdminUsername, $this->databaseAdminPassword, (int) $this->databasePort, $this->databaseName);
             if ($databaseExistsResult === true) {
                 $this->addError('databaseName', Zurmo::t('InstallModule', 'You have specified an existing database. ' . 'If you would like to use this database, then do not specify the database admin username and ' . 'password. Otherwise pick a database name that does not exist.'));
                 return;
             }
             $createDatabaseResult = DatabaseCompatibilityUtil::createDatabase($this->databaseType, $this->databaseHostname, $this->databaseAdminUsername, $this->databaseAdminPassword, (int) $this->databasePort, $this->databaseName);
             if ($createDatabaseResult === false) {
                 $this->addError('databaseName', Zurmo::t('InstallModule', 'There was a problem creating the database ' . 'Error code:') . " " . $connectionResult[0] . '<br/>Message: ' . $connectionResult[1]);
                 return;
             }
             $createUserResult = DatabaseCompatibilityUtil::createDatabaseUser($this->databaseType, $this->databaseHostname, $this->databaseAdminUsername, $this->databaseAdminPassword, (int) $this->databasePort, $this->databaseName, $this->databaseUsername, $this->databasePassword);
             if ($createUserResult === false) {
                 $this->addError('databaseUsername', Zurmo::t('InstallModule', 'There was a problem creating the user ' . 'Error code:') . " " . $connectionResult[0] . '<br/>Message: ' . $connectionResult[1]);
                 return;
             }
         } else {
             $connectionResult = DatabaseCompatibilityUtil::checkDatabaseConnection($this->databaseType, $this->databaseHostname, $this->databaseUsername, $this->databasePassword, (int) $this->databasePort);
             if ($connectionResult !== true) {
                 $this->addError('databaseUsername', Zurmo::t('InstallModule', 'Error code:') . " " . $connectionResult[0] . '<br/>Message: ' . $connectionResult[1]);
                 return;
             }
             $databaseExistsResult = DatabaseCompatibilityUtil::checkDatabaseExists($this->databaseType, $this->databaseHostname, $this->databaseUsername, $this->databasePassword, (int) $this->databasePort, $this->databaseName);
             if ($databaseExistsResult !== true) {
                 $this->addError('databaseName', Zurmo::t('InstallModule', 'The database name specified does not ' . 'exist or the user specified does not have access.') . '<br/>' . Zurmo::t('InstallModule', 'Error code:') . " " . $databaseExistsResult[0] . '<br/>Message: ' . $databaseExistsResult[1]);
                 return;
             } else {
                 if ($this->removeExistingData == false) {
                     $this->addError('removeExistingData', Zurmo::t('InstallModule', 'Since you specified an existing database ' . 'you must check this box in order to proceed. THIS WILL REMOVE ALL EXISTING DATA.'));
                     return;
                 }
             }
         }
     }
 }
Пример #11
0
 protected function afterValidate()
 {
     if (($err = $this->testConnect()) !== true) {
         $this->addError('', 'Ошибка подключения к БД: ' . $err);
     }
     return parent::afterValidate();
 }
Пример #12
0
 protected function afterValidate()
 {
     if (($err = $this->testConnect()) !== TRUE) {
         $this->addError('', 'Ошибка подключения к БД: ' . $err);
     }
     if (!$this->license) {
         $this->addError('license', 'Вы не приняли условия лицензионного соглашения');
     }
     return parent::afterValidate();
 }
Пример #13
0
 public function afterValidate()
 {
     parent::afterValidate();
 }
Пример #14
0
 public function afterValidate()
 {
     parent::afterValidate();
     if ($this->hasErrors()) {
         $this->incrementErrorLoginNums();
     } else {
         $this->clearErrorLoginNums();
     }
 }
Пример #15
0
 public function afterValidate()
 {
     parent::afterValidate();
     if ($this->getErrors()) {
         self::incrementErrorLoginNums();
     } else {
         self::clearErrorLoginNums();
     }
 }