Esempio n. 1
0
 /**
  * Delete a Photo
  * route: /photos/delete{id}
  *
  * @param Request $request
  * @return Response
  */
 public function photoDeleteAction(Request $request)
 {
     $path = API_UPLOAD_DIR . '/';
     $data = $request->json()->get('Photo');
     $failed_ids = array();
     $succeeded_ids = array();
     foreach ($data['id'] as $photo_id) {
         $photo = Photos::find($photo_id);
         if (!$photo || $photo->user_id != $data['user_id']) {
             $failed_ids[] = $photo_id;
             continue;
         }
         $filename = $photo->url;
         $fullpath = $path . $filename;
         try {
             DB::beginTransaction();
             if (FILE::exists($fullpath)) {
                 // Delete an array of files
                 //$files = array($file1, $file2);
                 FILE::delete($fullpath);
             }
             // end if Exists
             $comment = new Comments();
             $comment->deleteCommentByType(CONSTANTS::PHOTO, $photo->id);
             $like = new Like();
             $like->deleteLikes(CONSTANTS::PHOTO, $photo->id);
             $activity = new Activities();
             $activity->deleteActivity(CONSTANTS::PHOTO_UPLOAD_RESTAURANT, $photo->id);
             $photo->delete();
             DB::commit();
             $succeeded_ids[] = $photo_id;
         } catch (\Exception $e) {
             DB::rollback();
             return showErrorResponse('Error deleting photo');
         }
     }
     $json_return[KeyParser::data] = array(KeyParser::success => $succeeded_ids, KeyParser::failed => $failed_ids);
     return response()->json($json_return);
 }
Esempio n. 2
0
 public function index()
 {
     $this->setView('index.php');
     $is_logged = isset(User_Model::$auth_data);
     $is_student = $is_logged && isset(User_Model::$auth_data['student_number']);
     $is_admin = $is_logged && User_Model::$auth_data['admin'] == '1';
     $this->set(array('username' => User_Model::$auth_data['username'], 'is_logged' => $is_logged, 'is_student' => $is_student, 'is_admin' => $is_admin));
     //Fonction qui met à jour l'annuaire dans mysql et ajoute les avatars
     //$uploaded_files=array();
     if (isset($_FILES['uploadzip'])) {
         if ($_FILES['uploadzip']['size'] > Config::UPLOAD_MAX_SIZE_FILE) {
             throw new Exception(__('POST_ADD_ERROR_FILE_SIZE', array('size' => File::humanReadableSize(Config::UPLOAD_MAX_SIZE_FILE))));
         }
         //On déplace le fichier zipper vers le serveur
         if ($filepaths = File::upload('uploadzip')) {
             // foreach($filepaths as $filepath)
             // $uploaded_files[] = $filepath;
             //foreach($filepaths as $i => $filepath){
             if (!preg_match('#\\.zip$#', $filepaths)) {
                 throw new Exception(__('POST_ADD_ERROR_FILE_FORMAT'));
             }
             $name = $filepaths;
             //}
         }
         $path = DATA_DIR . Config::DIR_DATA_TMP . 'annuaire/';
         // On dézip celui-ci
         if (FILE::exists($path)) {
             FILE::delete($path);
         }
         File::makeDir($path);
         $zip = new ZipArchive();
         $res = $zip->open($name);
         if ($res === TRUE) {
             $zip->extractTo($path);
             $zip->close();
             unlink($name);
         } else {
             throw new Exception(__('ADMIN_POST_ZIPERROR'));
         }
         if (File::delete(DATA_DIR . Config::DIR_DATA_TMP . $name)) {
             // On aplique le chmod a tous les dossiers et fichiers du zip
             FILE::chmodDirectory($path, 0);
             // on traite les fichiers students.csv et users.csv
             if (file_exists($path . 'users.csv')) {
                 $fp = fopen($path . 'users.csv', "r");
             } else {
                 throw new Exception(__('ADMIN_POST_CSVERROR1'));
             }
             $i = 0;
             while (!feof($fp)) {
                 $i = $i + 1;
                 // Tant qu'on n'atteint pas la fin du fichier
                 $ligne = fgets($fp, 4096);
                 /* On lit une ligne */
                 // On récupère les champs séparés par ; dans liste
                 $liste = explode(";", $ligne);
                 // On assigne les variables
                 if (strlen($liste[0]) > 1) {
                     if (isset($liste[0])) {
                         $username = $liste[0];
                     }
                     if (isset($liste[1])) {
                         $admin = $liste[1];
                     }
                     if (isset($liste[2])) {
                         $mail = $liste[2];
                     }
                     if (isset($liste[3])) {
                         $msn = $liste[3];
                     }
                     if (isset($liste[4])) {
                         $jabber = $liste[4];
                     }
                     if (isset($liste[5])) {
                         $address = $liste[5];
                     }
                     if (isset($liste[6])) {
                         $zipcode = $liste[6];
                     }
                     if (isset($liste[7])) {
                         $city = $liste[7];
                     }
                     if (isset($liste[8])) {
                         $cellphone = $liste[8];
                     }
                     if (isset($liste[9])) {
                         $phone = $liste[9];
                     }
                     if (isset($liste[10])) {
                         $birthday = $liste[10];
                     }
                     if (!$this->model->checkuser($username, 1)) {
                         $this->model->insertUsers(trim($username), trim($admin), trim($mail), trim($msn), trim($jabber), trim($address), trim($zipcode), trim($city), trim($cellphone), trim($phone), trim($birthday));
                     }
                 }
             }
             fclose($fp);
             if (file_exists($path . 'students.csv')) {
                 $fp = fopen($path . 'students.csv', "r");
             } else {
                 throw new Exception(__('ADMIN_POST_CSVERROR2'));
             }
             $i = 0;
             while (!feof($fp)) {
                 $i = $i + 1;
                 // Tant qu'on n'atteint pas la fin du fichier
                 $ligne = fgets($fp, 4096);
                 /* On lit une ligne */
                 // On récupère les champs séparés par ; dans liste
                 $liste = explode(";", $ligne);
                 // On assigne les variables
                 if (strlen($liste[0]) > 1) {
                     if (isset($liste[0])) {
                         $username = $liste[0];
                     }
                     if (isset($liste[1])) {
                         $lastname = $liste[1];
                     }
                     if (isset($liste[2])) {
                         $firstname = $liste[2];
                     }
                     if (isset($liste[3])) {
                         $student_number = $liste[3];
                     }
                     if (isset($liste[4])) {
                         $promo = $liste[4];
                     }
                     if (isset($liste[5])) {
                         $cesure = $liste[5];
                     }
                     if (!$this->model->checkuser($username, 2)) {
                         $this->model->insertStudents(trim($username), trim($lastname), trim($firstname), trim($student_number), trim($promo), trim($cesure));
                     }
                     // On déplace et formate les photos dans le dossier avatars
                     $avatarpath = $path . 'photos_students/' . $student_number . '.jpg';
                     $img = new Image();
                     $img->load($avatarpath);
                     $type = $img->getType();
                     if ($type == IMAGETYPE_JPEG) {
                         $ext = 'jpg';
                     } else {
                         if ($type == IMAGETYPE_GIF) {
                             $ext = 'gif';
                         } else {
                             if ($type == IMAGETYPE_PNG) {
                                 $ext = 'png';
                             } else {
                                 throw new Exception();
                             }
                         }
                     }
                     if ($img->getWidth() > 800) {
                         $img->setWidth(800, true);
                     }
                     $img->setType(IMAGETYPE_JPEG);
                     $img->save($avatarpath);
                     // Thumb
                     $avatarthumbpath = $path . 'photos_students/' . $student_number . '_thumb.jpg';
                     $img->thumb(Config::$AVATARS_THUMBS_SIZES[0], Config::$AVATARS_THUMBS_SIZES[1]);
                     $img->setType(IMAGETYPE_JPEG);
                     $img->save($avatarthumbpath);
                     if (FILE::exists(DATA_DIR . Config::DIR_DATA_STORAGE . 'avatars/' . substr($student_number, 0, -2) . '/')) {
                         FILE::move($avatarthumbpath, DATA_DIR . Config::DIR_DATA_STORAGE . 'avatars/' . substr($student_number, 0, -2) . '/');
                         FILE::move($avatarpath, DATA_DIR . Config::DIR_DATA_STORAGE . 'avatars/' . substr($student_number, 0, -2) . '/');
                     } else {
                         FILE::makeDir(DATA_DIR . Config::DIR_DATA_STORAGE . 'avatars/' . substr($student_number, 0, -2) . '/');
                         FILE::move($avatarthumbpath, DATA_DIR . Config::DIR_DATA_STORAGE . 'avatars/' . substr($student_number, 0, -2) . '/');
                         FILE::move($avatarpath, DATA_DIR . Config::DIR_DATA_STORAGE . 'avatars/' . substr($student_number, 0, -2) . '/');
                     }
                     unset($img);
                 }
             }
             fclose($fp);
             // On supprime le tout du dossier temp
             FILE::delete($path);
         }
     }
 }