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)); }