/** * Récupération d'un fichier * @param string $pVarName le nom de la variable du fichier * @param string $pPath chemin ou mettre le fichier * @param string $pFileName nom du fichier qui va être posé * @return mixed CopixUploadedFile */ public static function getFile($pVarName, $pPath = null, $pFileName = null) { $file = CopixUploadedFile::get($pVarName); if ($pPath !== null) { if ($file !== false) { $file->move($pPath, $pFileName); } } return $file; }
/** * addMultipleStudents * * Ajout d'une liste d'élèves * */ public function processAddMultipleStudents() { $ppo = new CopixPPO(); $ppo->nodeId = _request('parentId', null); $ppo->nodeType = _request('parentType', null); if (is_null($ppo->nodeId) || is_null($ppo->nodeType)) { return CopixActionGroup::process('generictools|Messages::getError', array('message' => "Une erreur est survenue.", 'back' => CopixUrl::get('gestionautonome||showTree'))); } $classroomDAO = _ioDAO('kernel|kernel_bu_ecole_classe'); if (!$classroomDAO->get($ppo->nodeId)) { return CopixActionGroup::process('generictools|Messages::getError', array('message' => "Une erreur est survenue.", 'back' => CopixUrl::get('gestionautonome||showTree'))); } _currentUser()->assertCredential('module:classroom|' . $ppo->nodeId . '|student|create@gestionautonome'); // Récupération de l'import par fichier $ppo->import = _sessionGet('modules|gestionautonome|studentsImport'); _sessionSet('modules|gestionautonome|studentsImport', null); // RAZ des sessions _sessionSet('gestionautonome|addMultipleStudents', array()); _sessionSet('gestionautonome|addMultipleStudents|success', array()); _sessionSet('gestionautonome|addMultipleStudents|error', array()); // Traitement du formulaire if (CopixRequest::isMethod('post')) { $ppo->errors = array(); switch (CopixUploadedFile::getError('filename')) { case UPLOAD_ERR_OK: $file = CopixUploadedFile::get('filename'); break; case UPLOAD_ERR_INI_SIZE: case UPLOAD_ERR_FORM_SIZE: $ppo->errors[] = 'Fichier trop volumineux'; break; case UPLOAD_ERR_NO_TMP_DIR: case UPLOAD_ERR_CANT_WRITE: case UPLOAD_ERR_PARTIAL: case UPLOAD_ERR_EXTENSION: $ppo->errors[] = 'Une erreur est survenue'; break; case UPLOAD_ERR_NO_FILE: $ppo->errors[] = 'Vous devez sélectionner un fichier'; } if (empty($ppo->errors)) { // Lecture du fichier if (($handle = fopen($file->getTempPath(), 'r')) === false) { $ppo->errors[] = 'Impossible de lire le fichier'; } else { $infos = array(); // Vérification de la ligne d'entête if (($data = fgetcsv($handle, 0, ',', '"')) === false || !in_array(count($data), array(12, 8, 4, 3))) { $ppo->errors[] = 'Fichier invalide'; } else { // Prend on en compte la première ligne ? if ($data[0] != 'Nom') { $infos[] = implode(',', $data); } // Lecture du reste du fichier while (($data = fgetcsv($handle, 0, ',', '"')) !== false) { if (!in_array(count($data), array(12, 8, 4, 3))) { $ppo->errors[] = 'Fichier invalide'; break; } $infos[] = implode(',', $data); } // Redirection if (empty($ppo->errors)) { _sessionSet('modules|gestionautonome|studentsImport', implode("\n", $infos)); return _arRedirect(CopixUrl::get('gestionautonome||AddMultipleStudents', array('parentId' => $ppo->nodeId, 'parentType' => $ppo->nodeType))); } } } } } // Breadcrumbs $ppo->nodeInfos = Kernel::getNodeInfo($ppo->nodeType, $ppo->nodeId, true); // Get vocabulary catalog to use $nodeVocabularyCatalogDAO = _ioDAO('kernel|kernel_i18n_node_vocabularycatalog'); $ppo->vocabularyCatalog = $nodeVocabularyCatalogDAO->getCatalogForNode($ppo->nodeType, $ppo->nodeId); $breadcrumbs = Kernel::generateBreadcrumbs($ppo->nodeInfos); $breadcrumbs[] = array('txt' => CopixCustomI18N::get('gestionautonome|gestionautonome.message.add%%structure_element_persons%%list', array('catalog' => $ppo->vocabularyCatalog->id_vc))); $ppo->breadcrumbs = Kernel::PetitPoucet($breadcrumbs, ' » '); $ppo->TITLE_PAGE = CopixConfig::get('gestionautonome|moduleTitle'); // Get vocabulary catalog to use $nodeVocabularyCatalogDAO = _ioDAO('kernel|kernel_i18n_node_vocabularycatalog'); $ppo->vocabularyCatalog = $nodeVocabularyCatalogDAO->getCatalogForNode($ppo->nodeType, $ppo->nodeId); return _arPPO($ppo, 'add_multiple_students.tpl'); }