echo'<td class="hc">'.$td_date_consult_parent.'</td>'; echo'</tr>'; } } exit(); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // IMPRIMER ETAPE 2/4 - Le PDF complet est généré ; on archive individuellement les bilans anonymes (qui vont y rester une année scolaire) // //////////////////////////////////////////////////////////////////////////////////////////////////// if( ($ACTION=='imprimer') && ($etape==2) ) { Erreur500::prevention_et_gestion_erreurs_fatales( FALSE /*memory*/ , TRUE /*time*/ ); // Récupérer les bilans déjà existants pour savoir s'il faut faire un INSERT ou un UPDATE (sinon, un REPLACE efface les dates de consultation) $DB_TAB = DB_STRUCTURE_OFFICIEL::DB_lister_bilan_officiel_fichiers( $BILAN_TYPE , $periode_id , array_keys($_SESSION['tmp']['tab_pages_decoupe_pdf']) ); $tab_notif = array(); foreach($_SESSION['tmp']['tab_pages_decoupe_pdf'] as $eleve_id => $tab_tirages) { list( $eleve_identite , $page_plage ) = $tab_tirages[0]; if(!isset($DB_TAB[$eleve_id])) { DB_STRUCTURE_OFFICIEL::DB_ajouter_bilan_officiel_fichier( $eleve_id , $BILAN_TYPE , $periode_id ); $tab_notif[$eleve_id] = $eleve_id; } else { DB_STRUCTURE_OFFICIEL::DB_modifier_bilan_officiel_fichier_date( $eleve_id , $BILAN_TYPE , $periode_id , 'generation' ); } $fichier_extraction_chemin = CHEMIN_DOSSIER_OFFICIEL.$_SESSION['BASE'].DS.fabriquer_nom_fichier_bilan_officiel( $eleve_id , $BILAN_TYPE , $periode_id ); unset($_SESSION['tmp']['tab_pages_decoupe_pdf'][$eleve_id][0]);
if($_SESSION['USER_PROFIL']=='eleve') { $tab_eleve_id[] = $_SESSION['USER_ID']; $tab_tbody[$_SESSION['USER_ID']][0] = ''; } else { foreach($_SESSION['OPT_PARENT_ENFANTS'] as $tab) { $tab_eleve_id[] = $tab['valeur']; $tab_tbody[$tab['valeur']][0] = '<th>'.html($tab['texte']).'</th>'; } } // lister les bilans officiels archivés de l'année courante $DB_TAB = DB_STRUCTURE_OFFICIEL::DB_lister_bilan_officiel_fichiers( '' /*BILAN_TYPE*/ , 0 /*periode_id*/ , $tab_eleve_id ); $_SESSION['tmp_droit_voir_archive'] = array(); // marqueur mis en session pour vérifier que c'est bien cet utilisateur qui veut voir (et à donc le droit de voir) le fichier, car il n'y a pas d'autre vérification de droit ensuite foreach($DB_TAB as $DB_ROW) { if(strpos($_SESSION['DROIT_OFFICIEL_'.$tab_types[$DB_ROW['officiel_type']]['droit'].'_VOIR_ARCHIVE'],$_SESSION['USER_PROFIL'])!==FALSE) { if(is_file(CHEMIN_DOSSIER_OFFICIEL.$_SESSION['BASE'].DS.fabriquer_nom_fichier_bilan_officiel( $DB_ROW['user_id'] , $DB_ROW['officiel_type'] , $DB_ROW['periode_id'] ))) { $_SESSION['tmp_droit_voir_archive'][$DB_ROW['user_id'].$DB_ROW['officiel_type']] = TRUE; // marqueur mis en session pour vérifier que c'est bien cet utilisateur qui veut voir (et à donc le droit de voir) le fichier, car il n'y a pas d'autre vérification de droit ensuite $tab_tbody[$DB_ROW['user_id']][$DB_ROW['periode_id']][] = '<a href="releve_pdf.php?fichier='.$DB_ROW['user_id'].'_'.$DB_ROW['officiel_type'].'_'.$DB_ROW['periode_id'].'" class="lien_ext">'.$tab_types[$DB_ROW['officiel_type']]['titre'].'</a>' ; } } } // Assemblage et affichage du tableau.
// car droit commun pour tous les paliers } if ($droit_voir_archives_pdf) { // identifiants élèves concernés $tab_eleve_id = array(); if ($_SESSION['USER_PROFIL_TYPE'] == 'eleve') { $tab_eleve_id[] = $_SESSION['USER_ID']; } else { foreach ($_SESSION['OPT_PARENT_ENFANTS'] as $tab) { $tab_eleve_id[] = $tab['valeur']; } } $tab_eleves = $_SESSION['USER_PROFIL_TYPE'] == 'eleve' ? array(0 => array('valeur' => $_SESSION['USER_ID'])) : $_SESSION['OPT_PARENT_ENFANTS']; $nb_eleves = count($tab_eleve_id); // lister les bilans officiels archivés de l'année courante $DB_TAB = DB_STRUCTURE_OFFICIEL::DB_lister_bilan_officiel_fichiers('', 0, $tab_eleve_id, TRUE, $_SESSION['USER_PROFIL_TYPE']); foreach ($DB_TAB as $DB_ROW) { if (test_user_droit_specifique($_SESSION['DROIT_' . $tab_types[$DB_ROW['officiel_type']]['droit'] . '_VOIR_ARCHIVE'])) { if (is_file(CHEMIN_DOSSIER_OFFICIEL . $_SESSION['BASE'] . DS . fabriquer_nom_fichier_bilan_officiel($DB_ROW['user_id'], $DB_ROW['officiel_type'], $DB_ROW['periode_id']))) { $text_eleve_nom = $nb_eleves > 1 ? html($_SESSION['OPT_PARENT_ENFANTS'][array_search($DB_ROW['user_id'], $tab_eleve_id)]['texte']) . ' || ' : ''; $tab_accueil['officiel']['nombre'] += 1; $tab_accueil['officiel']['contenu'] .= '<li>' . $text_eleve_nom . '<a href="./index.php?page=officiel_voir_archive">' . $tab_types[$DB_ROW['officiel_type']]['titre'] . ' || ' . html($DB_ROW['periode_nom']) . '</a></li>'; } } } if ($tab_accueil['officiel']['nombre']) { $tab_accueil['officiel']['contenu'] = '<div class="b"><TG> ' . $tab_accueil['officiel']['masque'] . '</div>' . '<ul class="puce p">' . $tab_accueil['officiel']['contenu'] . '</ul>'; } } } // ////////////////////////////////////////////////////////////////////////////////////////////////////
$liste_eleve_id = implode(',',$tab_eleve_id); } else { $tab_eleve_id_tmp = array(); $DB_TAB = DB_STRUCTURE_COMMUN::DB_lister_users_regroupement( 'eleve' , 1 /*statut*/ , 'classe' , $classe_id ); foreach($DB_TAB as $DB_ROW) { $tab_eleve_id_tmp[] = $DB_ROW['user_id']; } $liste_eleve_id = implode(',',$tab_eleve_id_tmp); } calculer_et_enregistrer_moyennes_eleves_bulletin( $periode_id , $classe_id , $liste_eleve_id , '' /*liste_matiere_id*/ , $_SESSION['OFFICIEL']['BULLETIN_MOYENNE_CLASSE'] , $_SESSION['OFFICIEL']['BULLETIN_MOYENNE_GENERALE'] ); } // lister les bilans officiels archivés de l'année courante, affichage du retour $DB_TAB = DB_STRUCTURE_OFFICIEL::DB_lister_bilan_officiel_fichiers( $BILAN_TYPE , $periode_id , $tab_eleve_id ); $_SESSION['tmp_droit_voir_archive'] = array(); // marqueur mis en session pour vérifier que c'est bien cet utilisateur qui veut voir (et à donc le droit de voir) le fichier, car il n'y a pas d'autre vérification de droit ensuite foreach($tab_eleve_id as $eleve_id) { if($objet=='imprimer') { $checked = (isset($DB_TAB[$eleve_id])) ? '' : ' checked' ; $archive_td = (isset($DB_TAB[$eleve_id])) ? 'Oui, le '.convert_date_mysql_to_french($DB_TAB[$eleve_id][0]['fichier_date']) : 'Non' ; echo'<tr id="id_'.$eleve_id.'">'; echo'<td class="nu"><input type="checkbox" name="f_ids" value="'.$eleve_id.'"'.$checked.' /></td>'; echo'<td class="label">'.$tab_eleve_td[$eleve_id].'</td>'; echo'<td class="label">'.$archive_td.'</td>'; echo'</tr>'; } elseif($objet=='voir_archive') {
$tab_eleve_id = array(); if($_SESSION['USER_PROFIL_TYPE']=='eleve') { $tab_eleve_id[] = $_SESSION['USER_ID']; } else { foreach($_SESSION['OPT_PARENT_ENFANTS'] as $tab) { $tab_eleve_id[] = $tab['valeur']; } } $tab_eleves = ($_SESSION['USER_PROFIL_TYPE']=='eleve') ? array(0=>array('valeur'=>$_SESSION['USER_ID'])) : $_SESSION['OPT_PARENT_ENFANTS'] ; $nb_eleves = count($tab_eleve_id); // lister les bilans officiels archivés de l'année courante $DB_TAB = DB_STRUCTURE_OFFICIEL::DB_lister_bilan_officiel_fichiers( '' /*BILAN_TYPE*/ , 0 /*periode_id*/ , $tab_eleve_id , TRUE /*with_periode_nom*/ , $_SESSION['USER_PROFIL_TYPE'] /*only_profil_non_vu*/ ); foreach($DB_TAB as $DB_ROW) { if(test_user_droit_specifique($_SESSION['DROIT_'.$tab_types[$DB_ROW['officiel_type']]['droit'].'_VOIR_ARCHIVE'])) { if(is_file(CHEMIN_DOSSIER_OFFICIEL.$_SESSION['BASE'].DS.fabriquer_nom_fichier_bilan_officiel( $DB_ROW['user_id'] , $DB_ROW['officiel_type'] , $DB_ROW['periode_id'] ))) { $text_eleve_nom = ($nb_eleves>1) ? html($_SESSION['OPT_PARENT_ENFANTS'][array_search($DB_ROW['user_id'],$tab_eleve_id)]['texte']).' || ' : '' ; $tab_accueil['officiel']['nombre'] += 1; $tab_accueil['officiel']['contenu'].= '<li>'.$text_eleve_nom.'<a href="./index.php?page=officiel_voir_archive">'.$tab_types[$DB_ROW['officiel_type']]['titre'].' || '.html($DB_ROW['periode_nom']).'</a></li>'; } } } if($tab_accueil['officiel']['nombre']) { $tab_accueil['officiel']['contenu'] = '<div class="b"><TG> '.$tab_accueil['officiel']['masque'].'</div>'.'<ul class="puce p">'.$tab_accueil['officiel']['contenu'].'</ul>';
$tab_tbody[$_SESSION['USER_ID']][0] = ''; } else { if (!$_SESSION['NB_ENFANTS']) { echo '<p class="danger">' . $_SESSION['OPT_PARENT_ENFANTS'] . '</p>' . NL; return; // Ne pas exécuter la suite de ce fichier inclus. } foreach ($_SESSION['OPT_PARENT_ENFANTS'] as $tab) { $tab_eleve_id[] = $tab['valeur']; $tab_tbody[$tab['valeur']][0] = '<th>' . html($tab['texte']) . '</th>'; } } // marqueur mis en session pour vérifier que c'est bien cet utilisateur qui veut voir (et à donc le droit de voir) le fichier, car il n'y a pas d'autre vérification de droit ensuite $_SESSION['tmp_droit_voir_archive'] = array(); // lister les bilans officiels archivés de l'année courante $DB_TAB = DB_STRUCTURE_OFFICIEL::DB_lister_bilan_officiel_fichiers('', 0, $tab_eleve_id); foreach ($DB_TAB as $DB_ROW) { if (test_user_droit_specifique($_SESSION['DROIT_' . $tab_types[$DB_ROW['officiel_type']]['droit'] . '_VOIR_ARCHIVE'])) { if (is_file(CHEMIN_DOSSIER_OFFICIEL . $_SESSION['BASE'] . DS . fabriquer_nom_fichier_bilan_officiel($DB_ROW['user_id'], $DB_ROW['officiel_type'], $DB_ROW['periode_id']))) { $_SESSION['tmp_droit_voir_archive'][$DB_ROW['user_id'] . $DB_ROW['officiel_type']] = TRUE; // marqueur mis en session pour vérifier que c'est bien cet utilisateur qui veut voir (et à donc le droit de voir) le fichier, car il n'y a pas d'autre vérification de droit ensuite $tab_tbody[$DB_ROW['user_id']][$DB_ROW['periode_id']][] = '<a href="releve_pdf.php?fichier=' . $DB_ROW['user_id'] . '_' . $DB_ROW['officiel_type'] . '_' . $DB_ROW['periode_id'] . '" target="_blank">' . $tab_types[$DB_ROW['officiel_type']]['titre'] . '</a>'; } } } // autre boucle pour les fiches brevet (ce n'est pas la même table) if (test_user_droit_specifique($_SESSION['DROIT_' . $tab_types['brevet']['droit'] . '_VOIR_ARCHIVE'])) { $bilan_type = 'brevet'; $DB_TAB = DB_STRUCTURE_BREVET::DB_lister_brevet_fichiers(implode(',', $tab_eleve_id)); foreach ($DB_TAB as $user_id => $tab) { if (is_file(CHEMIN_DOSSIER_OFFICIEL . $_SESSION['BASE'] . DS . fabriquer_nom_fichier_bilan_officiel($user_id, $bilan_type, $annee_session_brevet))) {