{ 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]); $releve_pdf = new PDFMerger; $pdf_string = $releve_pdf -> addPDF( CHEMIN_DOSSIER_EXPORT.$_SESSION['tmp']['fichier_nom'].'.pdf' , $page_plage ) -> merge( 'file' , $fichier_extraction_chemin ); } // Notifications (rendues visibles ultérieurement parce que plus simple comme cela) if(!empty($tab_notif)) { $abonnement_ref = 'bilan_officiel_visible'; $is_acces_parent = in_array( 'TUT' , explode(',',$_SESSION['DROIT_OFFICIEL_'.$tab_types[$BILAN_TYPE]['droit'].'_VOIR_ARCHIVE']) ) ? TRUE : FALSE ; $is_acces_enfant = in_array( 'ELV' , explode(',',$_SESSION['DROIT_OFFICIEL_'.$tab_types[$BILAN_TYPE]['droit'].'_VOIR_ARCHIVE']) ) ? TRUE : FALSE ; if( $is_acces_parent || $is_acces_enfant ) { $listing_eleves = implode(',',$tab_notif);
$fichier_copie_nom = 'officiel_'.$bilan_type.'_archive_'.$eleve_id.'_'.$periode_id.'_'.fabriquer_fin_nom_fichier__date_et_alea().'.pdf' ; copy($fichier_archive,CHEMIN_DOSSIER_EXPORT.$fichier_copie_nom); // Enregistrement de l'accès if( in_array( $_SESSION['USER_PROFIL_TYPE'] , array('eleve','parent') ) ) { // Connexion à la base de données adaptée (à ce stade, plus besoin de vérif, il s'agit d'une install bien en place...). if(HEBERGEUR_INSTALLATION=='multi-structures') { $fichier_mysql_config = 'serveur_sacoche_structure_'.$_SESSION['BASE']; $fichier_class_config = 'class.DB.config.sacoche_structure'; } elseif(HEBERGEUR_INSTALLATION=='mono-structure') { $fichier_mysql_config = 'serveur_sacoche_structure'; $fichier_class_config = 'class.DB.config.sacoche_structure'; } // Chargement du fichier de connexion à la BDD require(CHEMIN_DOSSIER_MYSQL.$fichier_mysql_config.'.php'); require(CHEMIN_DOSSIER_INCLUDE.$fichier_class_config.'.php'); // Et enfin la requête DB_STRUCTURE_OFFICIEL::DB_modifier_bilan_officiel_fichier_date( $eleve_id , $bilan_type , $periode_id , 'consultation_'.$_SESSION['USER_PROFIL_TYPE'] ); } // Redirection du navigateur header('Status: 302 Found', TRUE, 302); header('Location: '.URL_DIR_EXPORT.$fichier_copie_nom); exit(); ?>