if ($notification_contenu) {
        DB_STRUCTURE_NOTIFICATION::enregistrer_action_admin($notification_contenu, $_SESSION['USER_ID']);
    }
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Bilan des affectations des périodes aux classes & groupes ; en plusieurs requêtes pour récupérer les périodes sans classes-groupes et les classes-groupes sans périodes.
// 2/2 - On poursuit avec les requêtes suivantes (associations) et l'affichage.
// ////////////////////////////////////////////////////////////////////////////////////////////////////
echo '<hr />' . NL;
// Récupérer l'amplitude complète sur l'ensemble des périodes
$DB_ROW = DB_STRUCTURE_ADMINISTRATEUR::DB_recuperer_amplitude_periodes();
$tout_debut = $DB_ROW['tout_debut'] ? $DB_ROW['tout_debut'] : '2000-01-01';
$toute_fin = $DB_ROW['toute_fin'] ? $DB_ROW['toute_fin'] : '2000-01-01';
$nb_jours_total = $DB_ROW['nb_jours_total'] ? $DB_ROW['nb_jours_total'] : 0;
// Récupérer la liste des jointures, et le nécessaire pour établir les graphiques
$DB_TAB = DB_STRUCTURE_ADMINISTRATEUR::DB_lister_jointure_groupe_periode_avec_infos_graphiques($tout_debut);
$memo_groupe_id = 0;
foreach ($DB_TAB as $DB_ROW) {
    $groupe_id = $DB_ROW['groupe_id'];
    $date_affich_debut = convert_date_mysql_to_french($DB_ROW['jointure_date_debut']);
    $date_affich_fin = convert_date_mysql_to_french($DB_ROW['jointure_date_fin']);
    $tab_jointure[$groupe_id][$DB_ROW['periode_id']] = html($date_affich_debut) . ' ~ ' . html($date_affich_fin) . '<q class="date_ajouter" title="Importer ces dates dans les champs."></q>';
    // graphique (début)
    if ($memo_groupe_id != $groupe_id) {
        $memo_position = 0;
        $memo_groupe_id = $groupe_id;
    }
    $margin_left = 100 * round($DB_ROW['position_jour_debut'] / $nb_jours_total, 4);
    $width = 100 * round(($DB_ROW['nb_jour'] + 1) / $nb_jours_total, 4);
    // On ajoute un jour pour dessiner les barres jusqu'au jour suivant.
    if ($memo_position + 0.02 < $margin_left) {