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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1851 - (hide annotations)
Mon May 6 15:10:00 2013 UTC (11 years, 8 months ago) by softime
File size: 24682 byte(s)
Amélioration de la class digitalizedDocument : ajout de log sur deleteFolder et purgeFiles + suppression de la fonction checkLinkFile
Amélioration des tests de la class digitalizedDocument : ajout de la fonction checkLinkFile + amélioration des vérifications de retour de fonction

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26