* Vous devriez avoir reçu une copie de la Licence Publique Générale GNU Affero avec SACoche ;
 * si ce n’est pas le cas, consultez : <http://www.gnu.org/licenses/>.
 * 
 */
if (!defined('SACoche')) {
    exit('Ce fichier ne peut être appelé directement !');
}
if ($_SESSION['SESAMATH_ID'] == ID_DEMO && $_GET['action'] != 'initialiser') {
    exit('Action désactivée pour la démo...');
}
$action = isset($_POST['f_action']) ? $_POST['f_action'] : '';
$tab_modifs = isset($_POST['tab_modifs']) ? explode(',', $_POST['tab_modifs']) : array();
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Ajouter | Retirer un professeur à un groupe
// ////////////////////////////////////////////////////////////////////////////////////////////////////
if (in_array($action, array('ajouter', 'retirer')) && count($tab_modifs)) {
    $etat = $action == 'ajouter' ? TRUE : FALSE;
    foreach ($tab_modifs as $key => $id_modifs) {
        list($groupe_id, $prof_id) = explode('_', $id_modifs);
        $groupe_id = Clean::entier($groupe_id);
        $prof_id = Clean::entier($prof_id);
        if ($groupe_id && $prof_id) {
            DB_STRUCTURE_ADMINISTRATEUR::DB_modifier_liaison_user_groupe_par_admin($prof_id, 'professeur', $groupe_id, 'groupe', $etat);
        }
    }
    exit('ok');
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// On ne devrait pas en arriver là...
// ////////////////////////////////////////////////////////////////////////////////////////////////////
exit('Erreur avec les données transmises !');
 }
 $user_email_origine = $courriel ? 'admin' : '';
 // Insérer l'enregistrement
 $user_id = DB_STRUCTURE_COMMUN::DB_ajouter_utilisateur($sconet_id, $sconet_num, $reference, $profil, $genre, $nom, $prenom, $birth_date_mysql, $courriel, $user_email_origine, $login, crypter_mdp($password), 0, $id_ent, $id_gepi);
 // Il peut (déjà !) falloir lui affecter une date de sortie...
 if ($box_sortie_date) {
     $sortie_date = '-';
     $sortie_date_mysql = SORTIE_DEFAUT_MYSQL;
 } else {
     $sortie_date_mysql = convert_date_french_to_mysql($sortie_date);
     DB_STRUCTURE_ADMINISTRATEUR::DB_modifier_user($user_id, array(':sortie_date' => $sortie_date_mysql));
 }
 // Si on inscrit un élève après avoir fait afficher une classe ou un groupe, alors on l'affecte dans la classe ou le groupe en question
 $tab_groupe_type = array('c' => 'classe', 'g' => 'groupe');
 if (isset($tab_groupe_type[$groupe_type]) && $groupe_id) {
     DB_STRUCTURE_ADMINISTRATEUR::DB_modifier_liaison_user_groupe_par_admin($user_id, 'eleve', $groupe_id, $tab_groupe_type[$groupe_type], TRUE);
 }
 // Afficher le retour
 echo '<tr id="id_' . $user_id . '" class="new">';
 echo '<td class="nu"><input type="checkbox" name="f_ids" value="' . $user_id . '" /></td>';
 echo '<td class="label">' . html($id_ent) . '</td>';
 echo '<td class="label">' . html($id_gepi) . '</td>';
 echo '<td class="label">' . html($sconet_id) . '</td>';
 echo '<td class="label">' . html($sconet_num) . '</td>';
 echo '<td class="label">' . html($reference) . '</td>';
 echo '<td class="label">' . Html::$tab_genre['enfant'][$genre] . '</td>';
 echo '<td class="label">' . html($nom) . '</td>';
 echo '<td class="label">' . html($prenom) . '</td>';
 echo '<td class="label">' . $birth_date . '</td>';
 echo '<td class="label new">' . html($login) . ' <img alt="" src="./_img/bulle_aide.png" width="16" height="16" title="Pensez à relever le login généré !" /></td>';
 echo '<td class="label new">' . html($password) . ' <img alt="" src="./_img/bulle_aide.png" width="16" height="16" title="Pensez à noter le mot de passe !" /></td>';
$tab_eleve = isset($_POST['f_eleve']) ? is_array($_POST['f_eleve']) ? $_POST['f_eleve'] : explode(',', $_POST['f_eleve']) : array();
$tab_classe = isset($_POST['f_classe']) ? is_array($_POST['f_classe']) ? $_POST['f_classe'] : explode(',', $_POST['f_classe']) : array();
$tab_eleve = array_filter(Clean::map_entier($tab_eleve), 'positif');
$tab_classe = array_filter(Clean::map_entier($tab_classe), 'positif');
// Ajouter des élèves à des classes
if ($action == 'ajouter') {
    $classe_id = current($tab_classe);
    // un élève ne peut être affecté qu'à 1 seule classe : inutile de toutes les passer en revue
    foreach ($tab_eleve as $user_id) {
        DB_STRUCTURE_ADMINISTRATEUR::DB_modifier_liaison_user_groupe_par_admin($user_id, 'eleve', $classe_id, 'classe', TRUE);
    }
} elseif ($action == 'retirer') {
    // on doit tout passer en revue car on ne sait pas si la classe de l'élève est dans la liste transmise
    foreach ($tab_eleve as $user_id) {
        foreach ($tab_classe as $classe_id) {
            DB_STRUCTURE_ADMINISTRATEUR::DB_modifier_liaison_user_groupe_par_admin($user_id, 'eleve', $classe_id, 'classe', FALSE);
        }
    }
}
// Affichage du bilan des affectations des élèves dans les classes ; en deux requêtes pour récupérer les élèves sans classes et les classes sans élèves
$tab_niveau_groupe = array();
$tab_user = array();
$tab_niveau_groupe[0][0] = 'sans classe';
$tab_user[0] = '';
// Récupérer la liste des classes
$DB_TAB = DB_STRUCTURE_ADMINISTRATEUR::DB_lister_classes_avec_niveaux();
foreach ($DB_TAB as $DB_ROW) {
    $tab_niveau_groupe[$DB_ROW['niveau_id']][$DB_ROW['groupe_id']] = html($DB_ROW['groupe_nom']);
    $tab_user[$DB_ROW['groupe_id']] = '';
}
// Récupérer la liste des élèves / classes
  {
    foreach($tab_id2 as $matiere_id => $etat)
    {
      DB_STRUCTURE_ADMINISTRATEUR::DB_modifier_liaison_professeur_matiere($user_id,$matiere_id,$etat);
    }
  }
}
// Ajouter des associations users/groupes (profs ou élèves)
$nb_asso_groupes = count($tab_post['groupe']);
if($nb_asso_groupes)
{
  foreach($tab_post['groupe'] as $user_id => $tab_id2)
  {
    foreach($tab_id2 as $groupe_id => $etat)
    {
      DB_STRUCTURE_ADMINISTRATEUR::DB_modifier_liaison_user_groupe_par_admin($user_id,$import_profil,$groupe_id,'groupe',$etat);
    }
  }
}
// Afficher le résultat
if($import_profil=='professeur')
{
  echo'<p><label class="valide">Modifications associations utilisateurs / classes effectuées : '.$nb_asso_classes.'</label></p>'.NL;
  if($import_origine=='sconet')
  {
    echo'<p><label class="valide">Modifications associations utilisateurs / p.principal effectuées : '.$nb_asso_pps.'</label></p>'.NL;
    echo'<p><label class="valide">Modifications associations utilisateurs / matières effectuées : '.$nb_asso_matieres.'</label></p>'.NL;
  }
}
echo'<p><label class="valide">Modifications associations utilisateurs / groupes effectuées : '.$nb_asso_groupes.'</label></p>'.NL;
echo'<ul class="puce p"><li><a href="#step90" id="passer_etape_suivante">Passer à l\'étape 7.</a><label id="ajax_msg">&nbsp;</label></li></ul>'.NL;