Exemplo n.º 1
0
  $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 );
    }
  }
  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);
  $_SESSION['tmp']['pages_nombre_par_bilan'] = implode(' ; ',$tab_pages_nombre_par_bilan);
  unset($_SESSION['tmp']['tab_pages_decoupe_pdf']);
  exit('ok');
}

// ////////////////////////////////////////////////////////////////////////////////////////////////////
// IMPRIMER ETAPE 4/4 - Le PDF complet est généré ; on n'en garde que les bilans non anonymes
// ////////////////////////////////////////////////////////////////////////////////////////////////////

if( ($ACTION=='imprimer') && ($etape==4) )
{
  $releve_pdf = new PDFMerger;
  if($_SESSION['tmp']['pages_non_anonymes']!='') // Potentiellement possible si on veut imprimer un ou plusieurs bulletins d'élèves sans aucune donnée, ce qui provoque l'erreur "FPDF error: Pagenumber is wrong!"
  {
Exemplo n.º 2
0
 /**
  * Supprimer une structure (mode multi-structures)
  *
  * @param int    $BASE 
  * @return void
  */
 public static function supprimer_multi_structure($BASE)
 {
     // Paramètres de connexion à la base de données
     $BD_name = 'sac_base_' . $BASE;
     $BD_user = '******' . $BASE;
     // Limité à 16 caractères
     // Supprimer la base de données d'une structure, et son utilisateur MySQL une fois défait de ses droits.
     DB_WEBMESTRE_WEBMESTRE::DB_supprimer_base_structure_et_user_mysql($BD_name, $BD_user);
     // Supprimer le fichier de connexion
     FileSystem::supprimer_fichier(CHEMIN_DOSSIER_MYSQL . 'serveur_sacoche_structure_' . $BASE . '.php');
     // Retirer l'enregistrement d'une structure dans la base du webmestre
     DB_WEBMESTRE_WEBMESTRE::DB_supprimer_structure($BASE);
     // Supprimer les dossiers de fichiers temporaires par établissement
     foreach (FileSystem::$tab_dossier_tmp_structure as $dossier) {
         FileSystem::supprimer_dossier($dossier . $BASE);
     }
     // Supprimer les éventuels fichiers de blocage
     LockAcces::supprimer_fichiers_blocage($BASE);
     // Log de l'action
     SACocheLog::ajouter('Suppression de la structure n°' . $BASE . '.');
 }
    // Insérer l'enregistrement dans la base du webmestre
    // Créer le fichier de connexion de la base de données de la structure
    // Créer la base de données de la structure
    // Créer un utilisateur pour la base de données de la structure et lui attribuer ses droits
    $base_id = Webmestre::ajouter_structure($import_id, $geo_id, $uai, $localisation, $denomination, $contact_nom, $contact_prenom, $contact_courriel, $date);
    // Créer les dossiers de fichiers temporaires par établissement
    foreach (FileSystem::$tab_dossier_tmp_structure as $dossier) {
        FileSystem::creer_dossier($dossier . $base_id);
        FileSystem::ecrire_fichier_index($dossier . $base_id);
    }
    // Charger les paramètres de connexion à cette base afin de pouvoir y effectuer des requêtes
    charger_parametres_mysql_supplementaires($base_id);
    // Restaurer des fichiers de svg et mettre la base à jour si besoin.
    $texte_etape = restaurer_tables_base_etablissement($dossier_temp_sql, 0);
    // Supprimer le dossier temporaire
    FileSystem::supprimer_dossier($dossier_temp_sql);
    // Retour du succès, appel suivant
    $retour_cellules_oui = '<td class="nu"><input type="checkbox" name="f_ids" value="' . $base_id . '" /></td><td class="label">' . $base_id . '</td><td class="label">' . html($localisation . ' | ' . $denomination . ' [' . $uai . ']') . '</td><td class="label">' . html($contact_nom . ' ' . $contact_prenom . ' (' . $contact_courriel . ')') . '</td>';
    exit(']¤[' . '<tr>' . $retour_cellules_oui . '<td class="label"><label class="valide">' . $texte_etape . ' avec succès.</label></td>' . '</tr>');
} elseif ($action == 'importer' && $num && $max && $num == $max) {
    // Supprimer les fichiers zip des bases
    foreach ($_SESSION['tab_info'] as $key => $tab_infos) {
        FileSystem::supprimer_fichier(CHEMIN_DOSSIER_DUMP . $tab_infos['fichier_nom'], TRUE);
    }
    // Game over
    unset($_SESSION['datetime'], $_SESSION['alea'], $_SESSION['tab_info']);
    exit(']¤[' . 'ok');
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Supprimer plusieurs structures existantes
// ////////////////////////////////////////////////////////////////////////////////////////////////////
Exemplo n.º 4
0
    }
    elseif(!isset($tab['apres'])) // (forcément)
    {
      $tbody_pb .= '<tr class="r"><td>Fichier en trop</td><td>'.$fichier.'</td></tr>';
    }
  }
  // Enregistrement du rapport
  $_SESSION['tmp']['rapport_filename'] = 'rapport_verif_file_appli_'.$_SESSION['BASE'].'_'.fabriquer_fin_nom_fichier__date_et_alea().'.html';
  FileSystem::fabriquer_fichier_rapport( $_SESSION['tmp']['rapport_filename'] , $thead , $tbody_pb.$tbody_ok );
  exit(']¤['.'ok'.']¤['.'Rapport des différences trouvées et nettoyage&hellip;');
}

//
// 5. Nettoyage...
//
if($action=='verif_file_appli_etape5')
{
  FileSystem::supprimer_dossier($dossier_dezip);
  $fichier_chemin = URL_DIR_EXPORT.$_SESSION['tmp']['rapport_filename'];
  unset($_SESSION['tmp']);
  exit(']¤['.'ok'.']¤['.$fichier_chemin);
}

// ////////////////////////////////////////////////////////////////////////////////////////////////////
// On ne devrait pas en arriver là...
// ////////////////////////////////////////////////////////////////////////////////////////////////////

exit('Erreur avec les données transmises !');

?>
Exemplo n.º 5
0
 /**
  * Effacer d'anciens fichiers temporaires sur le serveur.
  * 
  * @param string   $dossier              le dossier à vider
  * @param int      $nb_minutes           le délai d'expiration en minutes
  * @param bool     $with_sous_dossiers   TRUE pour forcer aussi la suppression de sous-dossiers résiduels (facultatif)
  * @return void
  */
 public static function effacer_fichiers_temporaires($dossier,$nb_minutes,$with_sous_dossiers=FALSE)
 {
   if(is_dir($dossier))
   {
     $date_limite = $_SERVER['REQUEST_TIME'] - $nb_minutes*60;
     $tab_contenu = FileSystem::lister_contenu_dossier($dossier);
     $ds = (substr($dossier,-1)==DS) ? '' : DS ;
     foreach($tab_contenu as $contenu)
     {
       $chemin_contenu = $dossier.$ds.$contenu;
       $extension = pathinfo($chemin_contenu,PATHINFO_EXTENSION);
       $date_unix = @filemtime($chemin_contenu); // @ car dans de rares cas le fichier est simultanément supprimé par un autre processus
       if( ($date_unix<$date_limite) && ($extension!='htm') )
       {
         if(is_file($chemin_contenu))
         {
           FileSystem::supprimer_fichier($chemin_contenu);
         }
         else if( is_dir($chemin_contenu) && $with_sous_dossiers )
         {
           FileSystem::supprimer_dossier($chemin_contenu);
         }
       }
     }
   }
 }