Example #1
0
 /**
  * Удаляет работу из портфолио.
  *
  * @param integer $fid			UID юзера, который удаляет работу
  * @param integer $prj_id		id проекта
  * @param integer $force		1 - удаление админом (забивает на UID), 0 - обычный юзер
  *
  * @return string				сообщение об ошибке
  */
 public function DelPortf($fid, $prj_id, $force = 0)
 {
     global $DB;
     $dir = get_login($fid);
     $l_dir = substr($dir, 0, 2) . '/' . $dir;
     if ($force == 0) {
         $addit = "AND user_id='{$fid}'";
     }
     $sql = "SELECT pict, prev_pict, user_id FROM portfolio WHERE (id=?i {$addit})";
     $res = $DB->row($sql, $prj_id);
     $fname = $res['pict'];
     $pname = $res['prev_pict'];
     $uid = $res['user_id'];
     if ($uid != $fid && $force) {
         require_once ABS_PATH . '/classes/users.php';
         $user = new users();
         $user->GetUserByUID($uid);
         $l_dir = substr($user->login, 0, 2) . '/' . $user->login;
         // уведомление об удалении
         require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/messages.php';
         messages::portfolioDeletedNotification($user->uname, $user->usurname, $user->login);
     } else {
         if ($uid != $fid && !$force) {
             return 'Вы не можете удалять чужие работы!';
         }
     }
     if ($fname) {
         $cfile = new CFile();
         $cfile->Delete(0, "users/{$l_dir}/upload/", $fname);
         $cfile->Delete(0, "users/{$l_dir}/upload/", 'tn_' . $fname);
     }
     if ($pname) {
         if (!$cfile) {
             $cfile = new CFile();
         }
         $cfile->Delete(0, "users/{$l_dir}/upload/", $pname);
     }
     $sql = "DELETE FROM portfolio WHERE id=?i {$addit}";
     $DB->query($sql, $prj_id);
     $error = $DB->error;
     if (!$error && $fid == $uid) {
         require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/user_content.php';
         $sql .= $DB->parse('DELETE FROM moderation WHERE rec_id = ?i AND rec_type = ?i;', $prj_id, user_content::MODER_PORTFOLIO);
     }
     return $error;
 }