Esempio n. 1
0
 function handler_photo_change($page, $hrpid = null)
 {
     global $globals;
     $profile = $this->findProfile($hrpid);
     if (!$profile instanceof Profile && ($profile == PL_NOT_FOUND || $profile == PL_FORBIDDEN)) {
         return $profile;
     }
     if (is_null($hrpid)) {
         pl_redirect('photo/change/' . $profile->hrid());
     }
     $page->changeTpl('profile/trombino.tpl');
     $page->assign('hrpid', $profile->hrid());
     $trombi_x = '/home/web/trombino/photos' . $profile->promo() . '/' . $profile->hrid() . '.jpg';
     if (Env::has('upload')) {
         S::assert_xsrf_token();
         $upload = new PlUpload($profile->hrid(), 'photo');
         if (!$upload->upload($_FILES['userfile']) && !$upload->download(Env::v('photo'))) {
             $page->trigError('Une erreur est survenue lors du téléchargement du fichier');
         } else {
             $myphoto = new PhotoReq(S::user(), $profile, $upload);
             if ($myphoto->isValid()) {
                 $myphoto->submit();
             }
         }
     } elseif (Env::has('trombi')) {
         S::assert_xsrf_token();
         $upload = new PlUpload($profile->hrid(), 'photo');
         if ($upload->copyFrom($trombi_x)) {
             $myphoto = new PhotoReq(S::user(), $profile, $upload);
             if ($myphoto->isValid()) {
                 $myphoto->commit();
                 $myphoto->clean();
             }
         }
     } elseif (Env::v('suppr')) {
         S::assert_xsrf_token();
         XDB::execute('DELETE FROM  profile_photos
                             WHERE  pid = {?}', $profile->id());
         XDB::execute("DELETE FROM  requests\n                                WHERE  pid = {?} AND type = 'photo'", $profile->id());
         $globals->updateNbValid();
         $page->trigSuccess("Ta photo a bien été supprimée. Elle ne sera plus visible sur le site dans au plus une heure.");
     } elseif (Env::v('cancel')) {
         S::assert_xsrf_token();
         $sql = XDB::query("DELETE FROM  requests\n                                     WHERE  pid = {?} AND type = 'photo'", $profile->id());
         $globals->updateNbValid();
     }
     $sql = XDB::query("SELECT  COUNT(*)\n                             FROM  requests\n                            WHERE  pid = {?} AND type = 'photo'", $profile->id());
     $page->assign('submited', $sql->fetchOneCell());
     $page->assign('has_trombi_x', file_exists($trombi_x));
 }