public static function saveUploadedFile($fileupload, $dir, $old_file = '')
 {
     //print_r($fileupload);
     //Yii::app()->end();
     if ($fileupload instanceof CUploadedFile) {
         $newName = self::freeFileName(STranslate::transliter($fileupload->getName()), $dir);
         if (!file_exists($dir)) {
             mkdir($dir, 0775, true);
         }
         $fileupload->saveAs($dir . '/' . $newName);
         //$this->file = $newName;
         if (!empty($old_file)) {
             $delete = $dir . '/' . $old_file;
             if (file_exists($delete)) {
                 unlink($delete);
             }
         }
     }
     if (empty($newName) && !empty($old_file)) {
         $newName = $old_file;
     }
     return $newName;
 }
 public function beforeSave()
 {
     if ($this->fileupload instanceof CUploadedFile) {
         $mainName = $newName = STranslate::transliter($this->fileupload->getName());
         $i = 1;
         while (file_exists($this->getPathDirStoredFile() . '/' . $newName)) {
             $parts = explode('.', $mainName);
             $countParts = count($parts);
             if ($countParts > 1) {
                 unset($parts[$countParts - 1]);
                 $newName = implode($parts) . '(' . $i . ').' . $this->fileupload->extensionName;
             } else {
                 $newName = '(' . $i . ')' . $mainName;
             }
             $i++;
         }
         $this->fileupload->saveAs($this->getPathDirStoredFile() . '/' . $newName);
         $this->file = $newName;
         if (!empty($this->old_file)) {
             $delete = $this->getPathDirStoredFile() . '/' . $this->old_file;
             if (file_exists($delete)) {
                 unlink($delete);
             }
         }
     }
     if (empty($this->file) && !empty($this->old_file)) {
         $this->file = $this->old_file;
     }
     return parent::beforeSave();
 }