Example #1
0
     break;
 case 'real_name_splash':
     // сохранение имени, фамилии и юзерпика с соответствующего сплэш-скрина
     require_once ABS_PATH . "/classes/users.php";
     require_once ABS_PATH . "/classes/attachedfiles.php";
     require_once ABS_PATH . "/classes/CFile.php";
     $userObj = new users();
     $userID = get_uid();
     $aFiles = new attachedfiles($_POST['attachedfiles_session']);
     $userpics = $aFiles->getFiles(array(1));
     if (is_array($userpics) && !empty($userpics)) {
         $userpic = array_pop($userpics);
         $aFiles->setStatusTo3($userpic['id']);
         $foto = new CFile($userpic['id']);
         $to = $foto->path . 'sm_' . $foto->name;
         $foto->resizeImage($to, 50, 50, 'auto', true);
         $userObj->photo = $userpic['name'];
     }
     $name = change_q(substr(trim($_POST['name']), 0, 21), true);
     $surname = change_q(substr(trim($_POST['surname']), 0, 21), true);
     if ($name && !preg_match("/^[-a-zA-Zа-яёА-ЯЁ]+\$/", $name)) {
         $error_flag = 1;
         $alert[1] = "Поле заполнено некорректно";
     }
     if ($surname && !preg_match("/^[-a-zA-Zа-яёА-ЯЁ]+\$/", $surname)) {
         $error_flag = 1;
         $alert[2] = "Поле заполнено некорректно";
     }
     if (!$error_flag) {
         if ($name) {
             $userObj->uname = $name;
Example #2
0
 /**
  * Связывает файлы загруженные ассинхронно с сообщением
  *
  * @param   array     $files              Список загруженных файлов
  * @param   string    $login              Логин пользователя
  * @param   integer   $msg_id             ID сообщения
  * @param   boolean   $from_draft         Файлы из черновика
  */
 function addAttachedFiles($files, $msg_id, $login = NULL, $from_draft = false)
 {
     global $DB;
     if (!$login) {
         $login = $_SESSION['login'];
     }
     $bModeration = false;
     $old_files = $this->getAttachedFiles($msg_id);
     if ($from_draft) {
         $notdeleted_files = array();
         if ($files) {
             foreach ($files as $f) {
                 if ($f['status'] == 3 || in_array($f['id'], $old_files)) {
                     array_push($notdeleted_files, $f['id']);
                 }
             }
         }
         $attaches = CFile::selectFilesBySrc(self::FILE_TABLE, $msg_id);
         if ($attaches) {
             foreach ($attaches as $attach) {
                 if (in_array($attach['id'], $notdeleted_files)) {
                     continue;
                 }
                 $cFile = new CFile($attach['id']);
                 $cFile->table = self::FILE_TABLE;
                 if ($cFile->id) {
                     $cFile->Delete($cFile->id);
                 }
             }
         }
     }
     $max_image_size = array('width' => blogs::MAX_IMAGE_WIDTH, 'height' => blogs::MAX_IMAGE_HEIGHT, 'less' => 0);
     if ($files) {
         foreach ($files as $file) {
             switch ($file['status']) {
                 case 4:
                     // Удаляем файл
                     $cFile = new CFile($file['id']);
                     $cFile->table = self::FILE_TABLE;
                     if ($cFile->id) {
                         $cFile->Delete($cFile->id);
                     }
                     break;
                 case 1:
                     if (in_array($file['id'], $old_files)) {
                         $need_copy = false;
                     } else {
                         $bModeration = true;
                         $need_copy = true;
                     }
                     // Добавляем файл
                     $cFile = new CFile($file['id']);
                     $cFile->proportional = 1;
                     $cFile->table = self::FILE_TABLE;
                     $ext = $cFile->getext();
                     if ($need_copy) {
                         $tmp_dir = "users/" . substr($login, 0, 2) . "/" . $login . "/upload/";
                         $tmp_name = $cFile->secure_tmpname($tmp_dir, '.' . $ext);
                         $tmp_name = substr_replace($tmp_name, "", 0, strlen($tmp_dir));
                         $cFile->_remoteCopy($tmp_dir . $tmp_name, true);
                     }
                     if (in_array($ext, $GLOBALS['graf_array'])) {
                         $is_image = TRUE;
                     } else {
                         $is_image = FALSE;
                     }
                     if ($is_image && $ext != 'swf' && $ext != 'flv') {
                         if ($cFile->image_size['width'] > $max_image_size['width'] || $cFile->image_size['height'] > $max_image_size['height']) {
                             if ($need_copy) {
                                 if ($cFile->resizeImage($cFile->path . 'sm_' . $cFile->name, $max_image_size['width'], $cFile->image_size['height'], 'landscape')) {
                                     $cFile->small = 2;
                                 }
                             } else {
                                 $cFile->small = 2;
                             }
                         } else {
                             $cFile->small = 1;
                         }
                     } else {
                         $cFile->small = $ext == 'flv' ? 2 : 0;
                     }
                     $cFile->updateFileParams(array('src_id' => $msg_id, 'small' => $cFile->small), false);
                     break;
             }
         }
     }
     if ($bModeration && $login == $_SESSION['login'] && !hasPermissions('blogs')) {
         // отравляем сообщение на модерирование сразу по факту создания или редактирования
         // появились новые файлы и это правит автор, и он не админ и не ПРО - отправить на модерирование
         /*require_once( $_SERVER['DOCUMENT_ROOT'] . '/classes/user_content.php' );
           $DB->query( 'UPDATE blogs_msgs SET moderator_status = 0 WHERE id = ?i', $msg_id );
           $DB->insert( 'moderation', array('rec_id' => $msg_id, 'rec_type' => user_content::MODER_BLOGS) );*/
     }
 }
Example #3
0
 /**
  * Связывает файлы загруженные ассинхронно с сообщением
  *
  * @param   array     $files              Список загруженных файлов
  * @param   string    $login              Логин пользователя
  * @param   integer   $msg_id             ID сообщения
  * @param   boolean   $from_draft         Файлы из черновика
  */
 function addAttachedFiles($files, $msg_id, $login, $from_draft = false)
 {
     global $DB;
     if (!$login) {
         $login = $_SESSION['login'];
     }
     $bModeration = false;
     $where = " inline != TRUE";
     $attaches = CFile::selectFilesBySrc(self::FILE_TABLE, $msg_id, NULL, $where);
     //$DB->rows($sql, $msg_id);
     $old_files = array();
     if ($attaches) {
         foreach ($attaches as $f) {
             array_push($old_files, $f['fid']);
         }
     }
     if ($from_draft) {
         $notdeleted_files = array();
         if ($files) {
             foreach ($files as $f) {
                 if ($f['status'] == 3) {
                     array_push($notdeleted_files, $f['id']);
                 }
             }
         }
         if ($attaches) {
             $cfile = new CFile();
             foreach ($attaches as $attach) {
                 if (in_array($attach['id'], $notdeleted_files)) {
                     continue;
                 }
                 $cfile->Delete(0, "users/" . substr($login, 0, 2) . "/" . $login . "/upload/", $attach['fname']);
                 //if ($attach['small'] == 't') {
                 //    $cfile->Delete(0, "users/" . substr($login, 0, 2) . "/" . $login . "/upload/", "sm_" . $attach['fname']);
                 //}
             }
         }
     }
     $max_image_size = array('width' => 470, 'height' => 1000, 'less' => 0);
     if ($files) {
         $cfile = new CFile();
         $num = 0;
         foreach ($files as $file) {
             switch ($file['status']) {
                 case 3:
                     $num++;
                     break;
                 case 4:
                     // Удаляем файл
                     $cFile = new CFile($file['id']);
                     $cFile->table = self::FILE_TABLE;
                     if ($cFile->id) {
                         $cFile->updateFileParams(array('src_id' => null), false);
                         // Удаляем связь
                         $cFile->Delete($cFile->id);
                     }
                     break;
                 case 1:
                     $num++;
                     if (in_array($file['id'], $old_files)) {
                         $need_copy = false;
                     } else {
                         $bModeration = true;
                         $need_copy = true;
                     }
                     // Добавляем файл
                     $cFile = new CFile($file['id']);
                     $cFile->proportional = 1;
                     $cFile->table = self::FILE_TABLE;
                     $ext = $cFile->getext();
                     if ($need_copy) {
                         $tmp_dir = "users/" . substr($login, 0, 2) . "/" . $login . "/upload/";
                         $tmp_name = $cFile->secure_tmpname($tmp_dir, '.' . $ext);
                         $tmp_name = substr_replace($tmp_name, "", 0, strlen($tmp_dir));
                         $cFile->_remoteCopy($tmp_dir . $tmp_name, true);
                     }
                     if (in_array($ext, $GLOBALS['graf_array'])) {
                         $is_image = TRUE;
                     } else {
                         $is_image = FALSE;
                     }
                     if ($is_image && $ext != 'swf' && $ext != 'flv') {
                         if ($cFile->image_size['width'] > $max_image_size['width'] || $cFile->image_size['height'] > $max_image_size['height']) {
                             if ($need_copy) {
                                 if ($cFile->resizeImage($cFile->path . 'sm_' . $cFile->name, $max_image_size['width'], $cFile->image_size['height'], 'landscape')) {
                                     $cFile->small = true;
                                 }
                             } else {
                                 $cFile->small = true;
                             }
                         } else {
                             $cFile->small = false;
                         }
                     } else {
                         $cFile->small = false;
                     }
                     $cFile->updateFileParams(array('src_id' => $msg_id, 'small' => $cFile->small, 'sort' => $num), false);
                     //$sql = "INSERT INTO commune_attach(cid, fid, small, sort) VALUES(?i, ?i, ?b, ?i)";
                     //$DB->query($sql, $msg_id, $cFile->id, $cFile->small, $num);
                     break;
             }
         }
     }
     if ($bModeration && $login == $_SESSION['login'] && !hasPermissions('communes') && !is_pro()) {
         // отравляет сообщение на модерирование сразу по факту создания или редактирования
         // появились новые файлы и это правит автор - отправить на модерирование
         /*$sId = $DB->query( 'UPDATE commune_messages SET moderator_status = 0 WHERE id = ?i AND user_id = ?i  RETURNING id', $msg_id, $_SESSION['uid'] );
           
           if ( $sId ) {
               require_once( $_SERVER['DOCUMENT_ROOT'] . '/classes/user_content.php' );
               $DB->insert( 'moderation', array('rec_id' => $msg_id, 'rec_type' => user_content::MODER_COMMUNITY) );
           }*/
     }
 }
Example #4
0
 /**
  * Удаляет картинку или превьюху работы.
  *
  * @param string  $login     Логин пользователя
  * @param integer $prj_id    ИД превью
  * @param integer $pict_type Тип картинки (1-картинка, 0-портфолио) 
  *
  * @return integer 1 - если все ок, иначе 0
  */
 public function DelPict($login, $prj_id, $pict_type = 1)
 {
     global $DB;
     if ($pict_type == 1) {
         $pict = $this->GetField($prj_id, 'pict');
     } else {
         $pict = $this->GetField($prj_id, 'prev_pict');
     }
     if ($pict) {
         $sql = 'UPDATE portfolio SET ' . ($pict_type == 1 ? 'pict' : 'prev_pict') . ' = NULL WHERE id = ?i';
         if ($DB->query($sql, $prj_id)) {
             $dir = substr($login, 0, 2) . '/' . $login;
             $cfile = new CFile();
             $cfile->Delete(0, "users/{$dir}/upload/", $pict);
             if ($pict_type != 1) {
                 $sm_pict = new CFile();
                 $pict = $this->GetField($prj_id, 'pict');
                 $sm_pict->GetInfo("users/{$dir}/upload/" . $pict);
                 if ($sm_pict->size > 0) {
                     $ext = $sm_pict->getext();
                     if (in_array($ext, $GLOBALS['graf_array']) && $ext != 'swf') {
                         $sm_pict->table = 'file_template';
                         $sm_pict->quality = 100;
                         $sm_pict->resizeImage("users/{$dir}/upload/" . 'tn_' . $sm_pict->name, 200, 200, 'auto', true);
                     }
                 }
             }
             return 1;
         }
     }
     return 0;
 }
Example #5
0
 /**
  * Связывает файлы загруженные ассинхронно с комментарием
  *
  * @param  array $files Список загруженных файлов @see attachedfiles::getFiles
  * @param  string $login Логин пользователя
  * @param  integer $msg_id ID комментария
  * @return bool
  */
 function addAttachedFiles($files = array(), $msg_id = 0, $login = '')
 {
     global $DB;
     $model = $this->model();
     if (!isset($model['attaches'])) {
         return false;
     }
     if (!$login) {
         $login = $_SESSION['login'];
     }
     $sql = 'SELECT ' . $model['attaches']['fields']['file'] . ' AS fid FROM ' . $model['attaches']['table'] . ' WHERE ' . $model['attaches']['fields']['comment'] . ' = ?i AND ' . $model['attaches']['fields']['inline'] . ' != TRUE';
     $attaches = $DB->rows($sql, $msg_id);
     $old_files = array();
     if ($attaches) {
         foreach ($attaches as $f) {
             array_push($old_files, $f['fid']);
         }
     }
     $max_image_size = array('width' => 390, 'height' => 1000, 'less' => 0);
     if ($files) {
         $num = 0;
         foreach ($files as $file) {
             switch ($file['status']) {
                 case 4:
                     // Удаляем файл
                     $cFile = new CFile($file['id']);
                     $cFile->table = $model['attaches']['file_table'];
                     if ($cFile->id) {
                         $sql = 'DELETE FROM ' . $model['attaches']['table'] . ' WHERE ' . $model['attaches']['fields']['file'] . ' = ?i';
                         $DB->query($sql, $cFile->id);
                         $cFile->Delete($cFile->id);
                     }
                     break;
                 case 1:
                     $num++;
                     if (in_array($file['id'], $old_files)) {
                         $need_copy = false;
                     } else {
                         $need_copy = true;
                     }
                     // Добавляем файл
                     $cFile = new CFile($file['id']);
                     $cFile->proportional = 1;
                     $cFile->table = $model['attaches']['file_table'];
                     $ext = $cFile->getext();
                     if ($need_copy) {
                         $tmp_dir = 'users/' . substr($login, 0, 2) . '/' . $login . '/upload/';
                         $tmp_name = $cFile->secure_tmpname($tmp_dir, '.' . $ext);
                         $tmp_name = substr_replace($tmp_name, '', 0, strlen($tmp_dir));
                         $cFile->_remoteCopy($tmp_dir . $tmp_name, true);
                     }
                     if (in_array($ext, $GLOBALS['graf_array'])) {
                         $is_image = TRUE;
                     } else {
                         $is_image = FALSE;
                     }
                     if ($is_image && $ext != 'swf' && $ext != 'flv') {
                         if ($cFile->image_size['width'] > $max_image_size['width'] || $cFile->image_size['height'] > $max_image_size['height']) {
                             if ($need_copy) {
                                 if ($cFile->resizeImage($cFile->path . 'sm_' . $cFile->name, $max_image_size['width'], $cFile->image_size['height'], 'landscape')) {
                                     $cFile->small = true;
                                 }
                             } else {
                                 $cFile->small = true;
                             }
                         } else {
                             $cFile->small = false;
                         }
                     } else {
                         $cFile->small = false;
                     }
                     $aData = array($model['attaches']['fields']['comment'] => $msg_id, $model['attaches']['fields']['file'] => $cFile->id);
                     if (isset($model['attaches']['fields']['small'])) {
                         $aData[$model['attaches']['fields']['small']] = $cFile->small;
                     }
                     if (isset($model['attaches']['fields']['sort'])) {
                         $aData[$model['attaches']['fields']['sort']] = $num;
                     }
                     $DB->insert($model['attaches']['table'], $aData);
                     break;
             }
         }
     }
     return true;
 }