$tab_bon[] = '<i>'.sprintf("%02u",$DB_ROW['popularite']).'</i>'.$DB_ROW['popularite'].' demande'.$s; } // Inclure dans le retour la liste des élèves sans demandes echo '<td>'.implode('<br />',$tab_autres).'</td>'.'<¤>'.str_replace($tab_bad,$tab_bon,$retour); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // Créer une nouvelle évaluation // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - elseif( ($action=='creer') && $groupe_id && (isset($tab_types[$groupe_type])) && in_array($qui,$tab_qui) && $date && $date_visible && $date_autoeval && $info && in_array($suite,$tab_suite) && $nb_demandes && $nb_users && $nb_items ) { // Dans le cas d'une évaluation sur une liste d'élèves sélectionnés, if($qui=='select') { // Commencer par créer un nouveau groupe de type "eval", utilisé uniquement pour cette évaluation (c'est transparent pour le professeur) ; y associe automatiquement le prof, en responsable du groupe $groupe_id = DB_STRUCTURE_PROFESSEUR::DB_ajouter_groupe_par_prof('eval','',0); } // Insérer l'enregistrement de l'évaluation $date_mysql = convert_date_french_to_mysql($date); $date_visible_mysql = convert_date_french_to_mysql($date_visible); $date_autoeval_mysql = convert_date_french_to_mysql($date_autoeval); $doc_sujet = ''; $doc_corrige = ''; $devoir_id = DB_STRUCTURE_PROFESSEUR::DB_ajouter_devoir($_SESSION['USER_ID'],$groupe_id,$date_mysql,$info,$date_visible_mysql,$date_autoeval_mysql,$doc_sujet,$doc_corrige); // Dans le cas d'une évaluation sur une liste d'élèves sélectionnés, // Affecter tous les élèves choisis if($qui=='select') { DB_STRUCTURE_PROFESSEUR::DB_modifier_liaison_devoir_user($devoir_id,$groupe_id,$tab_user_id,'creer'); } // Insérer les enregistrements des items de l'évaluation
if( ($date_autoeval!='00/00/0000') && ($date_autoeval_mysql<$date_visible_mysql) ) { exit('Date fin auto-éval. avant date visible !'); } // Tester les profs, mais plus leur appartenance au groupe (pour qu'un prof puisse accéder à l'éval même s'il n'a pas le groupe, même si on duplique une évaluation pour un autre groupe...) [absurde dans le cas d'élèves sélectionnés] if(count($tab_profs)) { if(!in_array($_SESSION['USER_ID'],$tab_profs)) { exit('Erreur : absent de la liste des professeurs !'); } } if($type=='selection') { // Commencer par créer un nouveau groupe de type "eval", utilisé uniquement pour cette évaluation (c'est transparent pour le professeur) ; y associe automatiquement le prof, en responsable du groupe $groupe_id = DB_STRUCTURE_PROFESSEUR::DB_ajouter_groupe_par_prof($groupe_type,'',0); } // Insèrer l'enregistrement de l'évaluation $devoir_id2 = DB_STRUCTURE_PROFESSEUR::DB_ajouter_devoir($_SESSION['USER_ID'],$groupe_id,$date_mysql,$description,$date_visible_mysql,$date_autoeval_mysql,$doc_sujet,$doc_corrige,$tab_profs); if($type=='selection') { // Affecter tous les élèves choisis DB_STRUCTURE_PROFESSEUR::DB_modifier_liaison_devoir_user($devoir_id2,$groupe_id,$tab_eleves,'creer'); } // Insérer les enregistrements des items de l'évaluation DB_STRUCTURE_PROFESSEUR::DB_modifier_liaison_devoir_item($devoir_id2,$tab_items,'dupliquer',$devoir_id); // Afficher le retour $date_visible = ($date_visible==$date) ? 'identique' : $date_visible ; $date_autoeval = ($date_autoeval=='00/00/0000') ? 'sans objet' : $date_autoeval ; $ref = $devoir_id2.'_'.strtoupper($groupe_type{0}).$groupe_id; $cs = ($nb_items>1) ? 's' : '';
$indice = array_search($_SESSION['USER_ID'], $tab_profs); if ($indice === FALSE) { exit('Erreur : absent de la liste des collègues !'); } unset($tab_profs[$indice]); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Ajouter un nouveau groupe de besoin // //////////////////////////////////////////////////////////////////////////////////////////////////// if ($action == 'ajouter' && $niveau && $groupe_nom && $nb_eleves) { // Vérifier que le nom du groupe est disponible if (DB_STRUCTURE_PROFESSEUR::DB_tester_groupe_nom($groupe_nom)) { exit('Erreur : nom de groupe déjà existant !'); } // Insérer l'enregistrement ; y associe automatiquement le prof, en responsable du groupe $groupe_id = DB_STRUCTURE_PROFESSEUR::DB_ajouter_groupe_par_prof('besoin', $groupe_nom, $niveau); // Affecter les élèves et les profs au groupe DB_STRUCTURE_PROFESSEUR::DB_modifier_liaison_user_groupe_par_prof($groupe_id, $tab_eleves, $tab_profs, 'creer', 0); // Remettre le prof responsable (si partagé avec d'autres collègues) if ($indice !== FALSE) { $tab_profs[$indice] = $_SESSION['USER_ID']; } // Afficher le retour $eleves_texte = $nb_eleves > 1 ? $nb_eleves . ' élèves' : '1 élève'; $profs_texte = $nb_profs > 1 ? $nb_profs . ' profs' : 'moi seul'; echo '<tr id="id_' . $groupe_id . '" class="new">'; echo '<td>{{NIVEAU_NOM}}</td>'; echo '<td>' . html($groupe_nom) . '</td>'; echo '<td>' . $eleves_texte . '</td>'; echo '<td>' . $profs_texte . '</td>'; echo '<td class="nu">';
else { // Si absence d'identifiants transmis, alors soit le devoir n'existe pas, soit il existe et c'est la 1ère saisie d'une série $DB_ROW = DB_STRUCTURE_PROFESSEUR::DB_recuperer_devoir_ponctuel_prof_by_date( $_SESSION['USER_ID'] , TODAY_MYSQL , $description ); if(!empty($DB_ROW)) { $presence_devoir = TRUE; $devoir_id = $DB_ROW['devoir_id']; $groupe_id = $DB_ROW['groupe_id']; } } // Si pas de devoir, il faut l'ajouter if(!$presence_devoir) { // Commencer par créer un nouveau groupe de type "eval", utilisé uniquement pour cette évaluation (c'est transparent pour le professeur) ; y associe automatiquement le prof, en responsable du groupe $groupe_id = DB_STRUCTURE_PROFESSEUR::DB_ajouter_groupe_par_prof( 'eval' /*groupe_type*/ , '' /*groupe_nom*/ , 0 /*niveau_id*/ ); // Insèrer l'enregistrement de l'évaluation $devoir_id = DB_STRUCTURE_PROFESSEUR::DB_ajouter_devoir( $_SESSION['USER_ID'] , $groupe_id , TODAY_MYSQL , $description , TODAY_MYSQL /*date_visible_mysql*/ ,NULL /*date_autoeval_mysql*/ , '' /*doc_sujet*/ , '' /*doc_corrige*/ , 'alpha' /*eleves_ordre*/ ); } // Maintenant on recupère le contenu de la base déjà enregistré pour le comparer avec la saisie envoyée. $presence_item = FALSE; $presence_eleve = FALSE; $presence_saisie = FALSE; $DB_TAB = ($presence_devoir) ? DB_STRUCTURE_PROFESSEUR::DB_lister_devoir_saisies( $devoir_id , TRUE /*with_REQ*/ ) : array() ; foreach($DB_TAB as $DB_ROW) { if($DB_ROW['item_id']==$item_id) { $presence_item = TRUE ; } if($DB_ROW['eleve_id']==$eleve_id)