$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)