* Consultez la Licence Publique Générale GNU Affero pour plus de détails. * * 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 !'); } /** * Code inclus commun aux pages * [./pages/releve_synthese_matiere.ajax.php] * [./pages/releve_synthese_multimatiere.ajax.php] * [./_inc/code_officiel_***.php] */ Erreur500::prevention_et_gestion_erreurs_fatales(TRUE, FALSE); // Chemins d'enregistrement $fichier_nom = $make_action != 'imprimer' ? 'releve_synthese_' . $synthese_modele . '_' . Clean::fichier($groupe_nom) . '_' . fabriquer_fin_nom_fichier__date_et_alea() : 'officiel_' . $BILAN_TYPE . '_' . Clean::fichier($groupe_nom) . '_' . fabriquer_fin_nom_fichier__date_et_alea(); // Initialisation de tableaux $tab_item = array(); // [item_id] => array(item_ref,item_nom,item_coef,item_cart,item_socle,item_lien,matiere_id,calcul_methode,calcul_limite,calcul_retroactif,synthese_ref); $tab_liste_item = array(); // [i] => item_id $tab_eleve_infos = array(); // [eleve_id] => array(eleve_INE,eleve_nom,eleve_prenom,date_naissance) $tab_matiere = array(); // [matiere_id] => array(matiere_nom,matiere_nb_demandes) $tab_synthese = array(); // [synthese_ref] => synthese_nom $tab_eval = array(); // [eleve_id][item_id][devoir] => array(note,date,info) On utilise un tableau multidimensionnel vu qu'on ne sait pas à l'avance combien il y a d'évaluations pour un élève et un item donnés.
Erreur500::prevention_et_gestion_erreurs_fatales(FALSE, TRUE); foreach ($_SESSION['tmp']['tab_pages_decoupe_pdf'] as $eleve_id => $tab_tirages) { list($eleve_identite, $page_numero) = $tab_tirages[1]; DB_STRUCTURE_BREVET::DB_modifier_brevet_fichier($eleve_id); $fichier_extraction_chemin = CHEMIN_DOSSIER_OFFICIEL . $_SESSION['BASE'] . DS . fabriquer_nom_fichier_bilan_officiel($eleve_id, $bilan_type, $annee_session_brevet); unset($_SESSION['tmp']['tab_pages_decoupe_pdf'][$eleve_id][1]); $releve_pdf = new PDFMerger(); $pdf_string = $releve_pdf->addPDF(CHEMIN_DOSSIER_EXPORT . $_SESSION['tmp']['fichier_nom'] . '.pdf', $page_numero)->merge('file', $fichier_extraction_chemin); } exit('ok'); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // IMPRIMER ETAPE 3/4 - Le PDF complet est généré ; on découpe individuellement les fiches brevet par élève puis on zippe l'ensemble // //////////////////////////////////////////////////////////////////////////////////////////////////// if ($ACTION == 'imprimer' && $etape == 3) { Erreur500::prevention_et_gestion_erreurs_fatales(FALSE, TRUE); $date = date('Y-m-d'); $tab_pages_non_anonymes = array(); $chemin_temp_pdf = CHEMIN_DOSSIER_EXPORT . 'pdf_' . mt_rand() . DS; FileSystem::creer_ou_vider_dossier($chemin_temp_pdf); foreach ($_SESSION['tmp']['tab_pages_decoupe_pdf'] as $eleve_id => $tab_tirages) { list($eleve_identite, $page_numero) = $tab_tirages[0]; $tab_pages_non_anonymes[] = $page_numero; $fichier_extraction_chemin = $chemin_temp_pdf . 'officiel_' . $bilan_type . '_' . Clean::fichier($eleve_identite) . '_' . $date . '.pdf'; $releve_pdf = new PDFMerger(); $pdf_string = $releve_pdf->addPDF(CHEMIN_DOSSIER_EXPORT . $_SESSION['tmp']['fichier_nom'] . '.pdf', $page_numero)->merge('file', $fichier_extraction_chemin); } FileSystem::zipper_fichiers($chemin_temp_pdf, CHEMIN_DOSSIER_EXPORT, $_SESSION['tmp']['fichier_nom'] . '.zip'); FileSystem::supprimer_dossier($chemin_temp_pdf); $_SESSION['tmp']['pages_non_anonymes'] = implode(',', $tab_pages_non_anonymes); unset($_SESSION['tmp']['tab_pages_decoupe_pdf']);
} } } } } // Retour exit('ok'); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // IMPRIMER ETAPE 3/4 - Le PDF complet est généré ; on découpe individuellement les bilans par responsables puis on zippe l'ensemble // //////////////////////////////////////////////////////////////////////////////////////////////////// if( ($ACTION=='imprimer') && ($etape==3) ) { Erreur500::prevention_et_gestion_erreurs_fatales( FALSE /*memory*/ , TRUE /*time*/ ); $date = date('Y-m-d'); $tab_pages_non_anonymes = array(); $tab_pages_nombre_par_bilan = array(); $chemin_temp_pdf = CHEMIN_DOSSIER_EXPORT.'pdf_'.mt_rand().DS; FileSystem::creer_ou_vider_dossier($chemin_temp_pdf); foreach($_SESSION['tmp']['tab_pages_decoupe_pdf'] as $eleve_id => $tab_tirages) { foreach($tab_tirages as $numero_tirage => $tab) { list( $eleve_identite , $page_plage , $page_nombre ) = $tab; $tab_pages_non_anonymes[] = $page_plage; $tab_pages_nombre_par_bilan[] = $page_nombre; $fichier_extraction_chemin = $chemin_temp_pdf.'officiel_'.$BILAN_TYPE.'_'.Clean::fichier($eleve_identite).'_'.$date.'_resp'.$numero_tirage.'.pdf'; $releve_pdf = new PDFMerger; $pdf_string = $releve_pdf -> addPDF( CHEMIN_DOSSIER_EXPORT.$_SESSION['tmp']['fichier_nom'].'.pdf' , $page_plage ) -> merge( 'file' , $fichier_extraction_chemin );
public static function prevention_et_gestion_erreurs_fatales($memory, $time) { if ($memory) { Erreur500::augmenter_memory_limit(); } if ($time) { Erreur500::augmenter_max_execution_time(); } register_shutdown_function(array('Erreur500', 'rapporter_erreur_fatale_memoire_ou_duree')); // @see http://fr.php.net/manual/fr/language.types.callable.php }