/** * Action permettant à un élève de rendre un travail */ public function processRendreTravail() { $ppo = new CopixPPO(); if (is_null($ppo->cahierId = _request('cahierId', null))) { return CopixActionGroup::process('generictools|Messages::getError', array('message' => CopixI18N::get('kernel|kernel.error.errorOccurred'), 'back' => CopixUrl::get(''))); } $travailDAO = _ioDAO('cahierdetextes|cahierdetextestravail'); if (!($ppo->travail = $travailDAO->get(_request('travailId', null)))) { return CopixActionGroup::process('generictools|Messages::getError', array('message' => CopixI18N::get('kernel|kernel.error.errorOccurred'), 'back' => CopixUrl::get(''))); } $travail2eleveDAO = _ioDAO('cahierdetextes|cahierdetextestravail2eleve'); $studentIds = $travail2eleveDAO->findEleveIdsParTravail($ppo->travail->id); if (!$ppo->travail->a_rendre || _currentUser()->getExtra('type') != 'USER_ELE' || !in_array(_currentUser()->getExtra('id'), $studentIds)) { return CopixActionGroup::process('generictools|Messages::getError', array('message' => CopixI18N::get('kernel|kernel.error.errorOccurred'), 'back' => CopixUrl::get(''))); } $ppo->error = _request('error'); // Récupération du dossier où rendre le travail $classeurDAO = _ioDAO('classeur|classeur'); $dossierDAO = _ioDAO('classeur|classeurdossier'); if ($dossier = $dossierDAO->get($ppo->travail->dossier_id)) { $classeur = $classeurDAO->get($dossier->classeur_id); } if (is_null($ppo->travail->dossier_id) || !$dossier->casier) { // Récupération du classeur $cahierInfos = Kernel::getModParent('MOD_CAHIERDETEXTES', $ppo->cahierId); $mods = Kernel::getModEnabled($cahierInfos[0]->node_type, $cahierInfos[0]->node_id); $modClasseur = Kernel::filterModuleList($mods, 'MOD_CLASSEUR'); $classeurId = $modClasseur[0]->module_id; $classeur = $classeurDAO->get($classeurId); $dossier = $dossierDAO->getCasier($classeurId); } if (CopixRequest::isMethod('post')) { // Contrôle upload du fichier if (is_uploaded_file($_FILES['fichier']['tmp_name'])) { $file = $_FILES['fichier']['tmp_name']; $name = $_FILES['fichier']['name']; _classInclude('classeur|classeurService'); classeurService::uploadFile($file, $name, $classeur, $dossier); classeurService::sendLockerUploadConfirmation($name); // Sauvegarde de la date de rendu du travail $travail2eleveDAO = _ioDAO('cahierdetextes|cahierdetextestravail2eleve'); if ($suivi = $travail2eleveDAO->getByTravailAndEleve($ppo->travail->id, _currentUser()->getExtra('id'))) { $suivi->rendu_le = date('Y-m-d H:i:s'); $travail2eleveDAO->update($suivi); } else { $suivi = _record('cahierdetextes|cahierdetextestravail2eleve'); $suivi->travail_id = $ppo->travail->id; $suivi->eleve_id = _currentUser()->getExtra('id'); $suivi->rendu_le = date('Y-m-d H:i:s'); $travail2eleveDAO->insert($suivi); } return _arRedirect(CopixUrl::get('cahierdetextes||voirTravaux', array('cahierId' => $ppo->cahierId, 'annee' => substr($ppo->travail->date_realisation, 0, 4), 'mois' => substr($ppo->travail->date_realisation, 4, 2), 'jour' => substr($ppo->travail->date_realisation, 6, 2), 'save' => 1))); } else { $ppo->erreur = CopixI18N::get('classeur|classeur.error.noFiles'); return _arPPO($ppo, array('template' => 'rendre_travail.tpl')); } } return _arPPO($ppo, array('template' => 'rendre_travail.tpl', 'mainTemplate' => 'main|main_fancy.php')); }