$nb_items    = count($tab_item_id);

$tab_types = array('Classes'=>'classe' , 'Groupes'=>'groupe' , 'Besoins'=>'groupe');
$tab_qui   = array('groupe','select');
$tab_suite = array('changer','retirer');

list($devoir_id,$devoir_groupe_id) = (substr_count($devoir_ids,'_')==1) ? explode('_',$devoir_ids) : array(0,0);

//	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-
//	Afficher une liste de demandes
//	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-
if( ($action=='Afficher_demandes') && $matiere_id && $matiere_nom && $groupe_id && (isset($tab_types[$groupe_type])) && $groupe_nom )
{
	$retour = '';
	// Récupérer la liste des élèves concernés
	$DB_TAB = DB_STRUCTURE_COMMUN::DB_OPT_eleves_regroupement($tab_types[$groupe_type],$groupe_id,$user_statut=1);
	if(!is_array($DB_TAB))
	{
		exit($DB_TAB);	// Erreur : aucun élève de ce regroupement n\'est enregistré !
	}
	$tab_eleves = array();
	$tab_autres = array();
	foreach($DB_TAB as $DB_ROW)
	{
		$tab_eleves[$DB_ROW['valeur']] = $DB_ROW['texte'];
		$tab_autres[$DB_ROW['valeur']] = $DB_ROW['texte'];
	}
	$listing_user_id = implode(',', array_keys($tab_eleves) );
	// Lister les demandes
	$tab_demandes = array();
	$DB_TAB = DB_STRUCTURE_PROFESSEUR::DB_lister_demandes_prof($matiere_id,$listing_user_id);
$tab_types = array('Classes' => 'classe', 'Groupes' => 'groupe', 'Besoins' => 'groupe');
$tab_qui = array('groupe', 'select');
$tab_suite = array('changer', 'retirer');
list($devoir_id, $devoir_groupe_id) = substr_count($devoir_ids, '_') == 1 ? explode('_', $devoir_ids) : array(0, 0);
$tab_td_score_bad = array('<td class="hc', '</td>');
$tab_td_score_bon = array('<td class="hd label', ' <q class="actualiser" title="Actualiser le score (enregistré lors de la demande)."></q></td>');
$abonnement_ref = 'demande_evaluation_prof';
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Afficher une liste de demandes
// ////////////////////////////////////////////////////////////////////////////////////////////////////
$selection_matiere = $matiere_id ? TRUE : FALSE;
$selection_groupe = $groupe_id ? TRUE : FALSE;
if ($action == 'Afficher_demandes' && ($matiere_nom || !$selection_matiere) && (isset($tab_types[$groupe_type]) && $groupe_nom || !$selection_groupe)) {
    $retour = '';
    // Récupérer la liste des élèves concernés
    $DB_TAB = $selection_groupe ? DB_STRUCTURE_COMMUN::DB_OPT_eleves_regroupement($tab_types[$groupe_type], $groupe_id, 1, 'alpha') : DB_STRUCTURE_PROFESSEUR::DB_OPT_lister_eleves_professeur($_SESSION['USER_ID'], $_SESSION['USER_JOIN_GROUPES']);
    if (!is_array($DB_TAB)) {
        exit($DB_TAB);
        // Aucun élève trouvé. | Aucun élève ne vous est affecté.
    }
    $tab_eleves = array();
    $tab_autres = array();
    $tab_groupes = array();
    foreach ($DB_TAB as $DB_ROW) {
        if ($selection_groupe || !isset($tab_eleves[$DB_ROW['valeur']])) {
            $tab_eleves[$DB_ROW['valeur']] = $DB_ROW['texte'];
            $tab_autres[$DB_ROW['valeur']] = $DB_ROW['texte'];
            $tab_groupes[$DB_ROW['valeur']] = $selection_groupe ? $groupe_nom : $DB_ROW['optgroup'];
        }
    }
    $listing_user_id = implode(',', array_keys($tab_eleves));
$tab_td_score_bon = array( '<td class="hd label' , ' <q class="actualiser" title="Actualiser le score (enregistré lors de la demande)."></q></td>' );

$abonnement_ref = 'demande_evaluation_prof';

// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Afficher une liste de demandes
// ////////////////////////////////////////////////////////////////////////////////////////////////////

$selection_matiere = ($matiere_id) ? TRUE : FALSE ;
$selection_groupe  = ($groupe_id)  ? TRUE : FALSE ;

if( ($action=='Afficher_demandes') && ( $matiere_nom || !$selection_matiere ) && ( ( (isset($tab_types[$groupe_type])) && $groupe_nom ) || !$selection_groupe ) )
{
  $retour = '';
  // Récupérer la liste des élèves concernés
  $DB_TAB = ($selection_groupe) ? DB_STRUCTURE_COMMUN::DB_OPT_eleves_regroupement( $tab_types[$groupe_type] , $groupe_id , 1 /*user_statut*/ , 'alpha' /*eleves_ordre*/ )
                                : DB_STRUCTURE_PROFESSEUR::DB_OPT_lister_eleves_professeur( $_SESSION['USER_ID'] , $_SESSION['USER_JOIN_GROUPES'] ) ;
  if(!is_array($DB_TAB))
  {
    exit($DB_TAB);  // Aucun élève trouvé. | Aucun élève ne vous est affecté.
  }
  $tab_eleves  = array();
  $tab_autres  = array();
  $tab_groupes = array();
  foreach($DB_TAB as $DB_ROW)
  {
    if( ($selection_groupe) || !isset($tab_eleves[ $DB_ROW['valeur']]) ) // Un élève peut être une classe + un groupe associé au prof ; dans ce cas on ne garde que la 1e entrée (la classe)
    {
      $tab_eleves[ $DB_ROW['valeur']] = $DB_ROW['texte'];
      $tab_autres[ $DB_ROW['valeur']] = $DB_ROW['texte'];
      $tab_groupes[$DB_ROW['valeur']] = ($selection_groupe) ? $groupe_nom : $DB_ROW['optgroup'] ;
 */
// Mettre à jour l'élément de formulaire "select_eleves" et le renvoyer en HTML
if (!defined('SACoche')) {
    exit('Ce fichier ne peut être appelé directement !');
}
if ($_SESSION['SESAMATH_ID'] == ID_DEMO) {
}
$groupe_type = isset($_POST['f_groupe_type']) ? Clean::texte($_POST['f_groupe_type']) : '';
$groupe_id = isset($_POST['f_groupe_id']) ? Clean::entier($_POST['f_groupe_id']) : 0;
// Le code n'est pas exactement le même pour un administrateur que pour un professeur / directeur / parent.
$tab_types = array('d' => 'Divers', 'n' => 'niveau', 'c' => 'classe', 'g' => 'groupe', 'b' => 'besoin') + array('Classes' => 'classe', 'Groupes' => 'groupe', 'Besoins' => 'besoin');
if (!$groupe_id || !isset($tab_types[$groupe_type])) {
    exit('Erreur avec les données transmises !');
}
$groupe_type = $tab_types[$groupe_type];
if ($groupe_type == 'Divers') {
    $groupe_type = $groupe_id == 1 ? 'sdf' : 'all';
}
// Autres valeurs à récupérer ou à définir.
$eleves_ordre = isset($_POST['f_eleves_ordre']) ? Clean::texte($_POST['f_eleves_ordre']) : 'alpha';
$statut = isset($_POST['f_statut']) ? Clean::entier($_POST['f_statut']) : 0;
$select_nom = isset($_POST['f_nom']) ? Clean::texte($_POST['f_nom']) : 'f_eleve';
$multiple = empty($_POST['f_multiple']) ? FALSE : TRUE;
$selection = empty($_POST['f_selection']) ? FALSE : ($_POST['f_selection'] == 1 ? TRUE : explode(',', $_POST['f_selection']));
$eleves_ordre = $groupe_type == 'groupe' || $groupe_type == 'besoin' ? $eleves_ordre : 'alpha';
$select_nom = $multiple ? $select_nom : FALSE;
$option_first = $multiple ? FALSE : '';
$selection = $multiple ? $selection : FALSE;
// Affichage du retour.
exit(HtmlForm::afficher_select(DB_STRUCTURE_COMMUN::DB_OPT_eleves_regroupement($groupe_type, $groupe_id, $statut, $eleves_ordre), $select_nom, $option_first, $selection, '', $multiple));