/[openfoncier]/trunk/obj/digitalizedDocument.class.php
ViewVC logotype

Annotation of /trunk/obj/digitalizedDocument.class.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1892 - (hide annotations)
Wed May 22 14:26:48 2013 UTC (11 years, 8 months ago) by softime
File size: 25308 byte(s)
Modification de la fonction linkFile renommé en createFileStorage de la classe DigitalizedDocument afin de passer les valeurs supplémentaires nécessaire à document_numerise + modification de la fonction createFile pour créer le temporary + modification des tests

1 softime 1835 <?php
2     /**
3     * Ce fichier permet la déclaration de la class DigitalizedDocument
4     * conçus pour gérer les fichiers scannés
5     *
6     * @package openads
7     * @version SVN : $Id
8     */
9    
10    
11 fmichon 1860
12 softime 1835 /**
13     * Cette classe permet d'effectuer les traitements sur les documents à incorporer dans l'application
14     *
15     * Pour imorter les données depuis un dossier il faut utiliser run_import dans une boucle
16     * qui parcourt le dossier qui abrite les répertoires des dossiers d'instructions
17     *
18     * Pour purger les documents il faut utiliser la fonction run_purge dans une boucle
19     * qui parcourt le dossier qui abrite les répertoires des dossiers d'instructions
20     */
21     class DigitalizedDocument {
22    
23     /**
24     * @access static
25     * @var string Messages utilisées pour l'écriture dans le log
26     */
27     var $NO_REP = "Le dossier n'existe pas.";
28     var $NO_FILES = "Le dossier est vide.";
29     var $NO_FILE_EXIST = "Le fichier n'existe pas.";
30     var $DOC_NO_CONFORME = "Le document n'est pas conforme a la regle RG2 : ";
31     var $NO_LINK = "Le lien entre le document et le dossier d'instruction n'a pu etre etabli.";
32     var $NO_METADATA_APP = "Le type de document n'apparait pas dans la table document_numerise_type : ";
33     var $NO_FILESTORAGE = "Le syteme de stockage n'est pas accessible. Erreur de parametrage. Contactez votre administrateur.";
34 softime 1851 var $NO_MOVE = "Le fichier n'a pas pu etre deplace.";
35     var $NO_DELETE_FOLDER = "Le dossier n'a pas pu etre supprime";
36     var $NO_DELETE_FILE = "Le fichier n'a pas pu etre supprime : ";
37 softime 1876 var $NO_IMPORT = "L'importation a été annulee.";
38 softime 1851
39 softime 1835 /**
40     * Instance de la classe utils
41     * @var utils
42     */
43     var $f = NULL;
44    
45     /**
46     * Instance du filestorage
47     * @var storage
48     */
49     var $filestorage = NULL;
50    
51     /**
52     * Constructeur
53     */
54 fmichon 1860 public function __construct($f) {
55 softime 1835
56 fmichon 1860 //
57     $this->f = $f;
58 softime 1835 // Permet lors de l'instantiation d'objets métiers d'avoir accès à f
59     $GLOBALS['f'] = $this->f;
60    
61     // initialise le msg attribute qui est utilise pour stocker les
62     // messages de retour (reussite ou erreur)
63     $this->msg = '';
64    
65     //Instance de filestorage
66     $this->filestorage = $this->f->storage;
67    
68     }
69    
70     /**
71     * Destructeur
72     */
73     public function __destruct() {
74    
75     //Détruit les instance de utils et filestorage
76     unset($this->f);
77     unset($this->filestorage);
78    
79     unset($GLOBALS['f']);
80    
81     }
82    
83     /**
84     * Ajoute une chaine de caracteres dans le log.
85     * @param string $message Le message qui doit etre ajouté dans le log.
86     * @param mixed $type Le mode de log.
87     */
88     protected function addToLog($message, $type = DEBUG_MODE) {
89     //
90     logger::instance()->log("class ".get_class($this)." : "."method ".__METHOD__." - ".$message, $type);
91     }
92    
93     /**
94     * Cette fonction permet d'analyser le dossier
95     * en de créer l'objet du dossier d'instruction
96     * @param string $foldername Nom du répertoire
97     * @return object objet du dossier d'instruction
98     */
99     public function analyseFolder($foldername) {
100    
101     //Clé primaire dossier
102     $dossier = str_replace('.', '', $foldername);
103    
104     //Requête pour récupérer les informations essentiels sur le dossier d'instruction
105     $sql = "SELECT dossier.dossier as dossier, dossier_autorisation.dossier_autorisation as dossier_autorisation,
106     dossier.date_demande as date_demande_initiale, dossier_instruction_type.code as dossier_instruction_type,
107     etat_dossier_autorisation.libelle as statut, dossier_autorisation_type.code as dossier_autorisation_type
108     FROM ".DB_PREFIXE."dossier
109     LEFT JOIN ".DB_PREFIXE."dossier_instruction_type
110     ON dossier.dossier_instruction_type = dossier_instruction_type.dossier_instruction_type
111     LEFT JOIN ".DB_PREFIXE."dossier_autorisation
112     ON dossier.dossier_autorisation = dossier_autorisation.dossier_autorisation
113     LEFT JOIN ".DB_PREFIXE."etat_dossier_autorisation
114     ON dossier_autorisation.etat_dossier_autorisation = etat_dossier_autorisation.etat_dossier_autorisation
115     LEFT JOIN ".DB_PREFIXE."dossier_autorisation_type_detaille
116     ON dossier_autorisation.dossier_autorisation_type_detaille = dossier_autorisation_type_detaille.dossier_autorisation_type_detaille
117     LEFT JOIN ".DB_PREFIXE."dossier_autorisation_type
118     On dossier_autorisation_type_detaille.dossier_autorisation_type = dossier_autorisation_type.dossier_autorisation_type
119     WHERE dossier.dossier = '".$dossier."'";
120     $res = $this->f->db->query($sql);
121 softime 1851 $this->f->addToLog("obj/digitalizedDocument.class.php : db->query(".$sql.")", VERBOSE_MODE);
122 softime 1835 $this->f->isDatabaseError($res);
123    
124     //Le résultat est récupéré dans un objet
125     $row =& $res->fetchRow(DB_FETCHMODE_OBJECT);
126    
127     //Si il y a un résultat
128     if ($row !== null) {
129    
130     //Alors on créé l'objet dossier_instruction
131     $dossier_instruction = $row;
132    
133     } else {
134    
135     //Sinon on retourne null pour indiquer une erreur
136     $this->addToLog($this->NO_REP);
137     return null;
138     }
139    
140     //Retourne un objet dossier instruction
141     return $dossier_instruction;
142     }
143    
144     /**
145     * Cette fonction permet de recupérer et de classer dans un tableau
146     * la liste des documents présent dans le dossier passé en paramètre
147     * @param string $path Le chemin vers le dossier
148     * @return array Tableau des documents
149     */
150     public function listFiles($path) {
151    
152     //Tableau qui sera retourné en fin de traitement
153     $listFiles = array();
154    
155     //Ouvre le répertoire
156     $dir = opendir($path);
157    
158     //Si un dossier est ouvert
159     if ($dir) {
160    
161     //Parcours le dossier
162     while(false !== ($file = readdir($dir))) {
163    
164     //Si le document est bien un fichier de type pdf
165     if($file != '.' && $file != '..' && !is_dir($dir.$file)
166 softime 1876 && strcasecmp(strstr($file, '.'), ".pdf") == 0) {
167 softime 1835
168     //Alors il est ajouté dans le tableau
169     array_push($listFiles, $file);
170    
171     }
172    
173     }
174    
175     //Ferme le répertoire
176     closedir($dir);
177    
178 softime 1851 } else {
179    
180     //Sinon renvoi null
181     $this->addToLog($this->NO_REP);
182     return null;
183 softime 1835 }
184    
185     //Si le tableau est vide on retourne null
186     if (count($listFiles) == 0) {
187    
188     $this->addToLog($this->NO_FILES);
189     return null;
190    
191     }
192    
193     //Retourne le tableau des documents
194     return $listFiles;
195    
196     }
197    
198     /**
199     * Cette fonction permet de construire les métadonnées d'un document
200     * à partir des informations du nom du fichier
201     * @param string $filename Nom du fichier
202     * @return array Tableau des metadonnées
203     */
204     public function extractMetadataFromFilename($filename) {
205    
206     //Tableau qui sera retourné en fin de traitement
207     $metadata = array();
208    
209     //Récupération de l'année
210     $year = substr($filename, 0, 4);
211     //Récupération du mois
212     $month = substr($filename, 4, 2);
213     //Récupération du jour
214     $day = substr($filename, 6, 2);
215    
216     //Vérification que l'année, le mois et le jour sont des numériques
217     if (is_numeric($year) && is_numeric($month) && is_numeric($day)) {
218    
219     //Vérification que cela correspond à une date possible
220     if (checkdate($month, $day, $year)) {
221    
222     //Récupération du type de document
223     //Si le séparateur '-' n'est pas présent
224     if (strpos($filename, '-') === false) {
225    
226     //On récupère le nom du fichier avant l'extension
227     $type_doc = substr(strstr($filename, '.', true), 8);
228    
229     } else {
230    
231     //Sinon on récupère le nom du fichier avant le '-'
232     $type_doc = substr(strstr($filename, '-', true), 8);
233    
234     }
235    
236     //Si aucun type de documenbt n'a pu être extrait
237     if (empty($type_doc)) {
238    
239     //On retourne null
240     $this->addToLog($this->DOC_NO_CONFORME.$filename);
241     return null;
242    
243     } else {
244    
245     //Sinon on ajoute le type de document dans les métadonnées
246     $metadata['type_doc'] = $type_doc;
247    
248     }
249    
250     //Formate la date du document
251     $metadata["date_evenement"] = date("d/m/Y", mktime(0, 0, 0, $month, $day, $year));
252    
253     //Si le tableau est vide on retourne null
254     if (count($metadata) == 0) {
255    
256     $this->addToLog($this->DOC_NO_CONFORME.$filename);
257     return null;
258    
259     }
260    
261     //On retourne les métadonnées
262     return $metadata;
263     }
264     }
265    
266     //Le nom du document n'est pas conforme
267     $this->addToLog($this->DOC_NO_CONFORME.$filename);
268     return null;
269    
270     }
271    
272     /**
273     * Cette fonction permet de récupérer une information sur le document
274     * en cherchant dans la base de données
275     * @param string $code Code du type du document
276     * @return string Libellé du type du document
277     */
278     public function extractMetadataFromApp($code) {
279    
280     //Requête pour récupérer le type de document
281     $sql = "SELECT libelle
282     FROM ".DB_PREFIXE."document_numerise_type
283     WHERE code = '".$code."'";
284     $libelle = $this->f->db->getOne($sql);
285 softime 1851 $this->f->addToLog("obj/digitalizedDocument.class.php : db->getOne(".$sql.")", VERBOSE_MODE);
286 softime 1835 $this->f->isDatabaseError($libelle);
287    
288     //S'il n'y a aucun résultat
289     if ($libelle === null) {
290    
291     //retourne null
292     $this->addToLog($this->NO_METADATA_APP.$code);
293     return null;
294    
295     }
296    
297     //Retourne le libellé du type du document
298     return $libelle;
299     }
300    
301     /**
302     * Cette fonction permet de récupérer des informations sur le fichier
303     * nécessaire pour le filestorage
304     * @param string $path Chemin du dossier
305     * @param string $filename Nom du fichier
306     * @return array Tableau des métadonnées
307     */
308     public function extractMetadataToFilestorage($path, $filename) {
309    
310     //Test si le fichier existe
311     if (!file_exists($path.'/'.$filename)) {
312     //
313     $this->addToLog($this->NO_FILE_EXIST);
314     return null;
315     }
316    
317     //Tableau qui sera retourné en fin de traitement
318     $metadata = array();
319    
320     //Métadonnées nécessaire au filestorage
321     $metadata["filename"] = $filename;
322     $metadata["size"] = filesize($path.'/'.$filename);
323     $metadata["mimetype"] = mime_content_type($path.'/'.$filename);
324    
325     //Si le tableau est vide on retourne null
326     if (count($metadata) == 0) {
327    
328     $this->addToLog($this->DOC_NO_CONFORME.$filename);
329     return null;
330    
331     }
332    
333     //Retourne le tableau des métadonnées
334     return $metadata;
335     }
336    
337     /**
338     * Cette fonction permet d'assembler toutes les métadonnées
339     * @param object $dossier_instruction Objet regroupant les informations sur le dossier d'instruction
340     * @param string $path Chemin du dossier
341     * @param string $filename Nom du fichier
342     * @return array Tableau des métadonnées
343     */
344     public function setMetadata($dossier_instruction, $path, $filename) {
345    
346     //Tableau qui sera retourné en fin de traitement
347     $metadata = array();
348    
349     //Données récupérées du répertoire
350     //Si l'objet dossier_instruction n'existe pas
351     if (empty($dossier_instruction)) {
352    
353     //Retourne null
354     $this->addToLog($this->NO_REP);
355     return null;
356    
357     }
358     $metadata['dossier'] = $dossier_instruction->dossier;
359     $metadata['dossier_autorisation'] = $dossier_instruction->dossier_autorisation;
360     $metadata['date_demande_initiale'] = date("Y/m", strtotime($dossier_instruction->date_demande_initiale));
361     $metadata['dossier_instruction_type'] = $dossier_instruction->dossier_instruction_type;
362     $metadata['statut'] = $dossier_instruction->statut;
363     $metadata['dossier_autorisation_type'] = $dossier_instruction->dossier_autorisation_type;
364    
365     //Données constantes
366     $metadata['groupe'] = "ADS";
367     $metadata['code_produit'] = "OpenADS";
368    
369     //Données récupérées du nom du fichier
370     $metadataFromFilename = $this->extractMetadataFromFilename($filename);
371     //S'il n'y a pas de données extrait du nom du fichier
372     if ($metadataFromFilename === null) {
373    
374     //Retourne null
375     return null;
376     }
377     //Parcours les résultats pour les ajouter au métadonnées global
378     foreach($metadataFromFilename as $key => $value) {
379     $metadata[$key] = $value;
380     }
381    
382     //Données récupérées de la BDD
383     $metadataFromApp = $this->extractMetadataFromApp($metadata['type_doc']);
384     //S'il n'y a pas de données recupéré dans la bdd
385     if ($metadataFromApp === null) {
386    
387     //Retourne null
388     return null;
389     }
390     $metadata['type_doc'] = $metadataFromApp;
391    
392     //Données récupérées pour le filestorage
393     $metadataToFilestorage = $this->extractMetadataToFilestorage($path, $filename);
394     //S'il n'y a pas de données recupérées pour le filestorage
395     if ($metadataToFilestorage === null) {
396    
397     //Retourne null
398     return null;
399     }
400     //Parcours les résultats pour les ajouter au métadonnées global
401     foreach($metadataToFilestorage as $key => $value) {
402     $metadata[$key] = $value;
403     }
404    
405     //Si le tableau est vide on retourne null
406     if (count($metadata) == 0) {
407     $this->addToLog($this->DOC_NO_CONFORME.$filename);
408     return null;
409     }
410    
411     //Retourne le tableau des metadonnées global
412     return $metadata;
413     }
414    
415     /**
416 softime 1892 * Cette fonction permet de créer un document temporaire dans le filesystem
417 softime 1835 * @param string $file_content Contenu du fichier
418 softime 1892 * @param array $metadata Métadonnées du fichier
419     * @return string $uid identifiant du document dans le filesystem
420 softime 1835 */
421     public function createFile($file_content, $metadata) {
422    
423     //Création du fichier sur le filestorage
424 softime 1892 $uid = $this->filestorage->create_temporary($file_content, $metadata);
425 softime 1835
426     //Retourne l'identifiant unique du fichier créé
427     return $uid;
428    
429     }
430    
431     /**
432 softime 1892 * Cette fonction permet de supprimer un document temporaire dans le filesystem
433     * @param string $uid Identifiant du fichier sur le filesystem
434 softime 1835 * @return string $uid Identifiant du fichier supprimé
435     */
436     public function deleteFile($uid) {
437 softime 1851
438 softime 1835 //Suppression du fichier du filestorage
439 softime 1892 $uid = $this->filestorage->delete_temporary($uid);
440 softime 1835
441     //Retourne l'identifiant unique du fichier supprimé
442     return $uid;
443    
444     }
445    
446     /**
447 softime 1892 * Récupère l'identifiant du type de document par rapport au code
448     * @param string $code Code du type de document
449     * @return int Identifiant du type de document
450     */
451     private function get_document_numerise_by_code($code) {
452    
453     //Requête SQL
454     $sql = "SELECT document_numerise_type
455     FROM ".DB_PREFIXE."document_numerise_type
456     WHERE code = '".$code."'";
457     $document_numerise_type = $this->f->db->getOne($sql);
458     $this->f->addToLog("obj/digitalizedDocument.class.php : db->getOne(".$sql.")", VERBOSE_MODE);
459     $this->f->isDatabaseError($document_numerise_type);
460    
461     //retourne l'id
462     return $document_numerise_type;
463     }
464    
465     /**
466     * Permet de lier le document importé à l'application et de le créer dans le filestorage
467 softime 1835 * @param string $uid L'identifiant du fichier
468 softime 1892 * @param string $metadata Métadonnées du document
469 softime 1835 * @param mixed $db Référence à la bdd
470     * @param mixed $DEBUG mode de débuggage
471     * @return int L'identifiant de la dernière ligne ajouté
472     */
473 softime 1892 public function createFileStorage($uid, $metadata, $db, $DEBUG = NULL) {
474 softime 1835
475     //Création d'un objet de type document_numerise
476     require_once '../obj/document_numerise.class.php';
477     $document_numerise = new document_numerise(']', $db, $DEBUG);
478     $document_numerise->setParameter("maj",0);
479    
480 softime 1892 //Afin de recupérer le code du type du document
481     $metadataFromFilename = $this->extractMetadataFromFilename($metadata['filename']);
482    
483 softime 1835 //Données
484     $values = array(
485     'document_numerise' => '',
486     'uid' => $uid,
487 softime 1892 'dossier' => $metadata['dossier'],
488     'nom_fichier' => '',
489     'date_creation' => $metadata['date_evenement'],
490     'document_numerise_type' => $this->get_document_numerise_by_code($metadataFromFilename['type_doc']),
491 softime 1835 );
492    
493     //Ajoute dans la table le lien
494     $document_numerise->ajouter($values, $db, $DEBUG);
495    
496 softime 1851 //
497     if (!$document_numerise->correct) {
498 softime 1835
499 softime 1851 //
500 softime 1835 $this->addToLog($this->NO_LINK);
501     return false;
502 softime 1851 }
503 softime 1835
504 softime 1851 return true;
505 softime 1835 }
506    
507     /**
508     * Permet de déplacer les fichiers créés dans le filestorage vers le dossier
509     * des fichiers traités
510     * @param string $pathSrc Chemin du dossier source
511     * @param string $pathDes Chemin du dossier de destination
512     * @param string $filename Nom du fichier
513     * @return boolean Retourne true si le fichier à été déplacé sinon false
514     */
515     public function moveFile($pathSrc, $pathDes, $filename) {
516    
517     //Si le dossier de destination n'existe pas, il est créé
518     if (!file_exists($pathDes)) {
519     mkdir($pathDes);
520     }
521    
522     //Déplace le document
523     $move = rename($pathSrc.'/'.$filename, $pathDes.'/'.$filename);
524    
525     //Si le déplacement à réussi
526     if ($move) {
527    
528     //On retourne TRUE
529     return true;
530     }
531    
532     //Si le deplacement n'est pas fait on retourne false
533     $this->addToLog($this->NO_MOVE);
534     return false;
535    
536     }
537    
538     /**
539     * Cette fonction permet de vider un répertoire
540 softime 1851 * Si la date d'import du fichier et le nombre de jour ne sont pas renseignés
541     * alors les fichiers sont supprimés sans vérification sur la date
542 softime 1835 * @param string $file Fichier traité
543     * @param date $dateImport Date de l'importation du fichier
544     * @param int $nbDay Nombre de jour à soustraite à la date du jour
545     * @return boolean true si le traitement à été fait sinon false
546     */
547     public function purgeFiles($file, $dateImport = null, $nbDay = null) {
548    
549     //Si la date et le nombre de jour sont renseigné
550     if ($dateImport && $nbDay) {
551    
552 softime 1892 //Date d'import dans un format correct pour la comparaison
553     $dateImport = new DateTime($dateImport);
554     $dateImport = $dateImport->format('Ymd');
555    
556     //Date limite pour la suppresion des fichier (Date du jour - 60 jours)
557 softime 1835 $dateLimit = date('d-m-Y', strtotime("- $nbDay day", strtotime(date('d-m-Y'))));
558 softime 1892 $dateLimit = new DateTime($dateLimit);
559     $dateLimit = $dateLimit->format('Ymd');
560    
561 softime 1835 //Si la date du fichier à dépassé la date limite
562 softime 1892 if ($dateImport <= $dateLimit) {
563 softime 1835
564     //on supprime le fichier
565     if (unlink($file)) {
566    
567     return true;
568    
569     }
570    
571     }
572    
573     //Si la date d'import et le nombre de jour ne sont renseignés
574     } else {
575    
576     //On supprime le fichier sans faire de test
577     if (unlink($file)) {
578    
579     return true;
580    
581     }
582    
583     }
584    
585     //Si aucun traitement n'a été fait on retourne false
586 softime 1851 $this->addToLog($this->NO_DELETE_FILE.$file);
587 softime 1835 return false;
588    
589     }
590    
591     /**
592     * Cette fonction permet de supprimer un dossier
593     * @param string $path Chemin du dossier
594     * @return boolean Retourn vrai si le dossier à été supprimé sinon faux
595     */
596     public function deleteFolder($path) {
597    
598     //Si le fichier est supprimé on retourne true
599     if (rmdir($path)) {
600     return true;
601     }
602    
603     //Si le fichier n'a pas été supprimé on retourne false
604 softime 1851 $this->addToLog($this->NO_DELETE_FOLDER);
605 softime 1835 return false;
606    
607     }
608    
609     /**
610     * Cette fonction permet de lancer toutes les fonctions utiles
611     * à l'importation des documents scannés
612     * @param string $pathSrc Le chemin vers le dossier à traiter
613     * @param string $pathDes Le chemin vers le dossier après le traitement
614     * @param mixed $DEBUG mode de débuggage
615     * @return boolean true si le traitement à été fait sinon false
616     */
617 softime 1876 function run_import($pathSrc, $pathDes, $DEBUG = NULL) {
618 softime 1835
619     //Récupération du nom du répertoire
620     $foldername = substr(strrchr($pathSrc, "/"), 1);
621     //Analyse le dossier pour récupérer les informations du dossier d'instruction
622     $dossier_instruction = $this->analyseFolder($foldername);
623     //Si le dossier n'existe pas dans la BDD
624     if ($dossier_instruction === null) {
625     //On annule l'importation
626     return false;
627     }
628    
629     //Liste les documents contenus dans le dossier
630     $listFiles = $this->listFiles($pathSrc);
631     //Si il n'y a aucun document
632     if ($listFiles === null) {
633     //On annule l'importation
634     $this->addToLog($this->NO_IMPORT);
635     return false;
636     }
637    
638     foreach ($listFiles as $key => $filename) {
639    
640     //Construit les métadonnées
641     $metadata = array();
642     $metadata = $this->setMetadata($dossier_instruction, $pathSrc,$filename);
643    
644     //S'il y a des métadonnées
645     if ($metadata !== null) {
646    
647     //Recupère le contenu du fichier
648     $file_content = file_get_contents($pathSrc.'/'.$filename);
649     //Créer le fichier dans le filestrorage
650     $uid = $this->createFile($file_content, $metadata);
651    
652     //Si le fichier est créé
653     if ($uid !== null) {
654    
655     //Créer le lien entre le fichier et l'application
656 softime 1892 $createFileStorage = $this->createFileStorage($uid, $metadata, $this->f->db, $DEBUG);
657 softime 1835
658     //Si le lien ne s'est pas fait
659 softime 1892 if ($createFileStorage === false) {
660 softime 1835
661     //On supprime le fichier du filestorage
662     $delete = $this->deleteFile($uid);
663    
664     } else {
665    
666     //Sinon on déplace le document créé dans le filestorage
667     //du dossier des "à traiter" vers celui des "traités"
668     $this->moveFile($pathSrc, $pathDes, $filename);
669    
670     }
671    
672     }
673     }
674    
675     }//Fin foreach
676    
677     //Retourne true
678     return true;
679    
680     }
681    
682     /**
683     * Cette fonction permet de lancer toutes les fonctions utiles à la purge de dossier
684     * @param string $path Le chemin vers le dossier
685     * @param int $nbDay Nombre de jour à soustraite à la date du jour
686     * @return boolean true si le traitement à été fait sinon false
687     */
688     function run_purge($path, $nbDay = null) {
689    
690     //Liste les documents contenus dans le dossier
691     $listFiles = $this->listFiles($path);
692    
693     //Parcours la liste des fichiers
694     foreach ($listFiles as $key => $filename) {
695     //Fichier
696     $file = $path.'/'.$filename;
697     //Si le nombre de jour est renseigné
698     if ($nbDay !== null) {
699    
700     //il faut renseigner la date d'import du fichier
701     $dateImport = date("Y-m-d", filemtime($file));
702    
703     } else {
704    
705     //Sinon la date d'import est null
706     $dateImport = null;
707    
708     }
709    
710     //S'il n'y pas d'erreur on exécute la fonction purgeFiles
711     $this->purgeFiles($file, $dateImport, $nbDay);
712     }
713    
714     //Analyse le dossier après traitement
715     $listFiles = $this->listFiles($path);
716    
717     //Si il n'y a plus de document
718     if ($listFiles === null) {
719    
720     //on supprime le dossier
721     $deleteFolder = $this->deleteFolder($path);
722     //Si le dossier n'a pas été supprimé on retourne false
723     if (!$deleteFolder) {
724    
725     return false;
726     }
727     }
728    
729     //Si il n'y a pas d'erreur on retourne true
730     return true;
731    
732     }
733    
734     }
735    
736     ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26