Beispiel #1
0
 /**
  * Редактирование клиента.
  *
  * @param string $name  Название клиента
  * @param string $link  Ссылка на сайт клиента   
  * @param object $logo  Логотип клиента
  * @param string $error Возвращает сообщение об ошибке если она есть
  */
 public function editClient($name, $link, $logo, $id, &$error)
 {
     global $DB;
     if (!$id) {
         $error = 'Ошибка';
         return false;
     }
     if ($logo) {
         $logo->max_size = 100000;
         $logo->max_image_size = array('width' => 140, 'height' => 100);
         $logo->resize = 1;
         $logo->topfill = 1;
         $logo->server_root = 1;
         $logo_client = $logo->MoveUploadedFile('clients/');
         $error = $logo->StrError('<br />');
     }
     if (!$error) {
         if ($logo) {
             $logo_client = ", logo = '{$logo_client}'";
         }
         $sql = "UPDATE clients SET name_client = ?, link_client = ? {$logo_client} WHERE id = ?i;";
         $ret = $DB->query($sql, $name, $link, $id);
         if ($ret == null) {
             $error = 'Ошибка обработки информации';
         }
     }
 }
Beispiel #2
0
 /**
  * Обновить фотографию пользователя.
  *
  * @param    object  $foto   Фотография
  *
  * @return boolean           true - фото обновилось, false - ошибка
  */
 public function UpdateFoto($foto)
 {
     $error = 0;
     if ($foto) {
         $foto->max_size = 100000;
         $foto->max_image_size = array('width' => 150, 'height' => 200);
         $foto->resize = 1;
         $foto->proportional = 1;
         $foto->topfill = 1;
         $foto->server_root = 1;
         $photo = $foto->MoveUploadedFile('team/');
         if ($foto->StrError()) {
             $error = 1;
         }
     }
     return array('error' => $error, 'foto' => $photo);
 }
Beispiel #3
0
 /**
  * Обновление логотипа пользователя.
  *
  * @param integer $fid ИД пользователя
  * @param object  $logo CFile, @see class CFile();
  * @param integer $del  Удалить либо обновить (1,0)
  *
  * @return string $error Сообщение об ошибке
  */
 public function UpdateLogo($fid, $logo, $del)
 {
     // если юзер меняет логотип пока предыдущий еще не отмодерирован - будет история изменений
     $aChange = $GLOBALS['DB']->row("SELECT id, old_val, new_val FROM users_change WHERE user_id = ?i AND ucolumn = 'logo'", $fid);
     $aDelFile = array();
     // файлы которые нужно будет удалять сразу
     $dir = get_login($fid);
     $err = '';
     if (!$dir) {
         $error = 'Имя пользователя не определено';
     }
     $this->logo = $this->GetField($fid, $err, 'logo');
     $old_logo = $this->logo;
     $error .= $err;
     if ($del == 1) {
         $this->logo = '';
     } else {
         if ($logo && !$error) {
             $logo->max_size = 50000;
             $logo->max_image_size = array('width' => 150, 'height' => 100);
             $logo->resize = 0;
             $logo->proportional = 1;
             $logo->topfill = 1;
             $logo->allowed_ext = $GLOBALS['graf_array'];
             $this->logo = $logo->MoveUploadedFile($dir . '/logo');
             $error .= $logo->StrError('<br />');
             if (!$error && !$logo->img_to_small('sm_' . $this->logo, array('width' => 50, 'height' => 50))) {
                 $error .= 'Невозможно уменьшить картинку.';
             }
         }
     }
     if (!$error) {
         $error .= $this->Update($fid, $res);
         // определяемся какие файлы нужно удалить
         if ($del == 1) {
             // удаляем логотип
             if ($aChange) {
                 // если хранили версии логотипа на случай возврата - то грохаем обе
                 if ($aChange['old_val']) {
                     $aDelFile[] = $aChange['old_val'];
                 }
                 $aDelFile[] = $aChange['new_val'];
             } else {
                 // иначе просто грохаем логотип
                 $aDelFile[] = $old_logo;
             }
         } elseif ($logo) {
             // меняем логотип
             if ($aChange && $aChange['new_val']) {
                 // грохаем только промежуточную версию, если была
                 $aDelFile[] = $aChange['new_val'];
             }
         }
     }
     // удаление не нужных файлов (если нет ошибок при сохранении разумеется)
     if ($aDelFile && !$error) {
         foreach ($aDelFile as $file) {
             $logo->Delete(0, 'users/' . substr($dir, 0, 2) . '/' . $dir . '/logo/', $file);
             $logo->Delete(0, 'users/' . substr($dir, 0, 2) . '/' . $dir . '/logo/', 'sm_' . $file);
         }
     }
     return $error;
 }
Beispiel #4
0
 /**
  * Изменить отзыв
  *
  * @param  string $msg Текст отзыва
  * @param  string $sign Подпись
  * @param  object $file CFile файл с логотипом
  * @param  string $link Ссылка на сайт того кто оставил отзыв
  * @param  string $from_ip IP адрес того кто писал отзыв
  * @param  int $msgid ID отзыва
  * @return array сообщения об ошибках (файл, база)
  */
 function Edit($msg, $sign, $file, $link, $from_ip, $msgid)
 {
     if ($file) {
         $file->max_size = 1048576;
         $file->proportional = 1;
         $file->max_image_size = array('width' => 120, 'height' => 120, 'less' => 1);
         $file->resize = 1;
         $file->proportional = 1;
         $file->topfill = 1;
         $file->server_root = 1;
         $f_name = $file->MoveUploadedFile("about/opinions/");
         if (!isNulArray($file->error)) {
             $alert[3] = "Файл не удовлетворяет условиям загрузки";
             $error_flag = 1;
         }
         if (!$error_flag) {
             $GLOBALS['DB']->query("UPDATE sopinions SET msgtext = ?, sign = ?, logo = ?, link = ?, from_ip = ?, modified = NOW() WHERE id = ?", $msg, $sign, $f_name, $link, $from_id, $msgid);
         }
     } else {
         $GLOBALS['DB']->query("UPDATE sopinions SET msgtext = ?, sign = ?, link = ?, from_ip = ?, modified = NOW() WHERE id=?", $msg, $sign, $link, $from_id, $msgid);
     }
     return array($alert, $DB->error);
 }
Beispiel #5
0
 /**
  * Закачка файлов прикрепленных к сообщению.
  *
  * @param object $file           Вложенные файлы @link class CFile(); 
  * @param array  $max_image_size Максимальный размер изображения [height=>1111, width=>1111]
  *
  * @return array [object CFile, предупреждение, флаги ошибок]
  */
 public function UploadFiles($file, $max_image_size)
 {
     if ($file) {
         if (!$this instanceof blogs_norisk) {
             $file->max_size = 2097152;
         }
         $file->proportional = 1;
         $f_name = $file->MoveUploadedFile($_SESSION['login'] . '/upload');
         $ext = $file->getext();
         if (in_array($ext, $GLOBALS['graf_array'])) {
             $is_image = TRUE;
         } else {
             $is_image = FALSE;
         }
         $p_name = '';
         if (!isNulArray($file->error)) {
             $error_flag = 1;
             $alert[3] = 'Файл не удовлетворяет условиям загрузки.';
         } else {
             if ($is_image && $ext != 'swf' && $ext != 'flv') {
                 if (!$file->image_size['width'] || !$file->image_size['height']) {
                     $error_flag = 1;
                     $alert[3] = 'Невозможно уменьшить картинку';
                 }
                 if (!$error_flag && ($file->image_size['width'] > $max_image_size['width'] || $file->image_size['height'] > $max_image_size['height'])) {
                     if (!$file->img_to_small('sm_' . $f_name, $max_image_size)) {
                         $error_flag = 1;
                         $alert[3] = 'Невозможно уменьшить картинку.';
                     } else {
                         $tn = 2;
                         $p_name = "sm_{$f_name}";
                     }
                 } else {
                     $tn = 1;
                 }
             } else {
                 if ($ext == 'flv') {
                     $tn = 2;
                 } else {
                     $tn = 0;
                 }
             }
         }
         $files['f_name'] = $f_name;
         $files['p_name'] = $p_name;
         $files['tn'] = $tn;
     }
     return array($files, $alert, $error_flag);
 }
Beispiel #6
0
 /**
  * Редактирование фотографий
  *
  * @param integer $id     Ид
  * @param object  $attach Приложеные файлы (см. класс CFile)
  * @param array   $photo  Фотки (см. класс CFile)
  * @return integer
  */
 function EditPhotos($id, $attach, $photo)
 {
     if (!$id) {
         return 0;
     }
     // Проверяем приложены ли файлы и обрабатываем их если они есть
     if ($attach->size > 0) {
         $fn = 0;
         $attach->proportional = 1;
         $f_name = $attach->MoveUploadedFile($_SESSION['login'] . "/upload");
         if (!isNulArray($attach->error)) {
             $error_flag = 1;
             $alert[2] = "Файл не удовлетворяет условиям загрузки";
         } else {
             $ext = $attach->getext();
             if (in_array($ext, $GLOBALS['graf_array']) && $ext != "swf") {
                 if (!$attach->image_size['width'] || !$attach->image_size['height']) {
                     $error_flag = 1;
                     $alert[2] = "Невозможно уменьшить картинку.";
                 }
                 if ($attach->image_size['width'] > 200 || $attach->image_size['height'] > 1000) {
                     if (!$attach->img_to_small("sm_" . $f_name, array('width' => 200, 'height' => 1000, 'less' => 0))) {
                         $error_flag = 1;
                         $alert[2] = "Невозможно уменьшить картинку.";
                     } else {
                         $fn = 2;
                     }
                 } else {
                     $fn = 1;
                 }
             }
         }
     }
     // Если есть фотки
     if ($photo) {
         // Обратобка фоток
         foreach ($photo as $ikey => $wrk) {
             $tn = 0;
             $w_name = $wrk->MoveUploadedFile($_SESSION['login'] . "/upload");
             if (!isNulArray($wrk->error)) {
                 $error_flag = 1;
                 $alert[2] = "Файл не удовлетворяет условиям загрузки";
             } else {
                 $ext = $wrk->getext();
                 $wrk->proportional = 1;
                 if (in_array($ext, $GLOBALS['graf_array']) && $ext != "swf") {
                     if (!$wrk->image_size['width'] || !$wrk->image_size['height']) {
                         $error_flag = 1;
                         $alert[2] = "Невозможно уменьшить картинку.";
                     }
                     if ($wrk->image_size['width'] > 200 || $wrk->image_size['height'] > 1000) {
                         if (!$wrk->img_to_small("sm_" . $w_name, array('width' => 200, 'height' => 1000, 'less' => 0))) {
                             $error_flag = 1;
                             $alert[2] = "Невозможно уменьшить картинку.";
                         } else {
                             $tn = 2;
                         }
                     } else {
                         $tn = 1;
                     }
                 }
             }
             if (!$error_flag) {
                 $qstn[] = "file" . ($ikey + 1) . "='{$w_name}'";
                 $qstv[$ikey] = "file" . ($ikey + 1);
                 $qsts[$ikey] = "pt" . ($ikey + 1);
                 $qstp[] = "pt" . ($ikey + 1) . "='" . $tn . "'";
             }
             $w_name = "";
         }
     }
     // Сохранение всего обработанного добра
     if ($id && ($qstn || $f_name)) {
         global $DB;
         $sql = "SELECT ft, foto" . (isset($qstv) ? "," . implode(", ", $qstv) . ", " . implode(", ", $qsts) : "") . " FROM interview WHERE id=?";
         $ret = $DB->row($sql, $id);
         if ($ret['foto'] && $f_name) {
             $file = new CFile();
             $file->Delete(0, "users/" . substr($_SESSION['login'], 0, 2) . "/" . $_SESSION['login'] . "/upload/", $ret['foto']);
             if ($ret['ft'] == 2) {
                 $file->Delete(0, "users/" . substr($_SESSION['login'], 0, 2) . "/" . $_SESSION['login'] . "/upload/", "sm_" . $ret['foto']);
             }
         }
         if ($f_name) {
             $af = "foto = '{$f_name}', ft = '{$fn}'";
         }
         if ($qstn) {
             foreach ($qstv as $ikey => $value) {
                 if ($ret[$value] && $qstn[$ikey]) {
                     $file = new CFile();
                     $file->Delete(0, "users/" . substr($_SESSION['login'], 0, 2) . "/" . $_SESSION['login'] . "/upload/", $ret[$value]);
                     if ($ret[$qsts[$ikey]] == 2) {
                         $file->Delete(0, "users/" . substr($_SESSION['login'], 0, 2) . "/" . $_SESSION['login'] . "/upload/", "sm_" . $ret[$value]);
                     }
                 }
             }
             $af .= (isset($af) ? "," : "") . implode(", ", $qstn) . ", " . implode(", ", $qstp);
         }
         $sql = "UPDATE interview SET " . $af . " WHERE id=?";
         $res = $DB->query($sql, $id);
     }
     return 0;
 }
Beispiel #7
0
 /**
  * Обновляет фото пользователя
  *
  * @param integer $fid               id пользователя
  * @param object $foto               файл фотографии
  * @param integer $del               флаг удаления фото (1 - удалить, 0 - перезакачаь)
  * @return string                    текст ошибки в случае неуспеха
  */
 function UpdateFoto($fid, $foto, $del)
 {
     // если юзер меняет аватар пока предыдущий еще не отмодерирован - будет история изменений
     $aChange = $GLOBALS['DB']->row("SELECT id, old_val, new_val FROM users_change WHERE user_id = ?i AND ucolumn = 'photo'", $fid);
     $aDelFile = array();
     // файлы которые нужно будет удалять сразу
     $dir = get_login($fid);
     $err = "";
     if (!$dir) {
         $error = "Имя пользователя не определено";
     }
     $this->photo = $this->GetField($fid, $err, "photo");
     $old_foto = $this->photo;
     $error .= $err;
     if ($del == 1) {
         $this->photo = "";
     } else {
         if ($foto && !$error) {
             $foto->max_size = 102400000;
             $foto->max_image_size = array('width' => 100, 'height' => 100, 'less' => 0);
             $foto->resize = 1;
             $foto->proportional = 1;
             $foto->topfill = 1;
             $cFile->crop = 1;
             $foto->allowed_ext = array_diff($GLOBALS['graf_array'], array('swf', 'gif'));
             $this->photo = $foto->MoveUploadedFile($dir . "/foto");
             $error .= $foto->StrError('<br />');
             if (!$error && !$foto->img_to_small("sm_" . $this->photo, array('width' => 50, 'height' => 50))) {
                 $error .= "Невозможно уменьшить картинку.";
             }
         }
     }
     if (!$error) {
         $error .= $this->Update($fid, $res);
         // определяемся какие файлы нужно удалить
         if ($del == 1) {
             // удаляем аватар
             if ($aChange) {
                 // если хранили версии аватара на случай возврата - то грохаем обе
                 if ($aChange['old_val']) {
                     $aDelFile[] = $aChange['old_val'];
                 }
                 $aDelFile[] = $aChange['new_val'];
             } else {
                 // иначе просто грохаем аватар
                 $aDelFile[] = $old_foto;
             }
         } elseif ($foto) {
             // меняем аватар
             if ($aChange && $aChange['new_val']) {
                 // грохаем только промежуточную версию, если была
                 $aDelFile[] = $aChange['new_val'];
             }
         }
     }
     // удаление не нужных файлов (если нет ошибок при сохранении разумеется)
     if ($aDelFile && !$error) {
         foreach ($aDelFile as $file) {
             $foto->Delete(0, "users/" . substr($dir, 0, 2) . "/" . $dir . "/foto/", $file);
             $foto->Delete(0, "users/" . substr($dir, 0, 2) . "/" . $dir . "/foto/", "sm_" . $file);
         }
     }
     return $error;
 }