Subversion Repositories Applications.projet

Rev

Rev 406 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 406 Rev 431
Line 17... Line 17...
17
// |                                                                                                      |
17
// |                                                                                                      |
18
// | You should have received a copy of the GNU General Public                                            |
18
// | You should have received a copy of the GNU General Public                                            |
19
// | License along with this library; if not, write to the Free Software                                  |
19
// | License along with this library; if not, write to the Free Software                                  |
20
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
20
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
21
// +------------------------------------------------------------------------------------------------------+
21
// +------------------------------------------------------------------------------------------------------+
22
// CVS : $Id: ezmlm-parser.php,v 1.5 2008-11-19 09:28:46 aperonnet Exp $
22
// CVS : $Id: ezmlm-parser.php,v 1.3 2007/04/19 15:34:35 neiluj Exp $
23
/**
23
/**
24
* Application projet
24
* Application projet
25
*
25
*
26
* classe ezmlm_parser pour lire les fichiers d index de ezmlm-idx
26
* classe ezmlm_parser pour lire les fichiers d index de ezmlm-idx
27
*
27
*
28
*@package projet
28
*@package projet
29
//Auteur original : ?? recupere dans ezmlm-php
29
//Auteur original : ?? recupere dans ezmlm-php
30
*@author        Alexandre Granier <alexandre@tela-botanica.org>
30
*@author        Alexandre Granier <alexandre@tela-botanica.org>
31
*@copyright     Tela-Botanica 2000-2004
31
*@copyright     Tela-Botanica 2000-2004
32
*@version       $Revision: 1.5 $
32
*@version       $Revision: 1.3 $
33
// +------------------------------------------------------------------------------------------------------+
33
// +------------------------------------------------------------------------------------------------------+
34
*/
34
*/
Line 35... Line 35...
35
 
35
 
36
 
36
 
37
// +------------------------------------------------------------------------------------------------------+
37
// +------------------------------------------------------------------------------------------------------+
Line 38... Line 38...
38
// |                                            ENTETE du PROGRAMME                                       |
38
// |                                            ENTETE du PROGRAMME                                       |
39
// +------------------------------------------------------------------------------------------------------+
39
// +------------------------------------------------------------------------------------------------------+
Line 40... Line 40...
40
 
40
 
41
// $Id: ezmlm-parser.php,v 1.5 2008-11-19 09:28:46 aperonnet Exp $
41
// $Id: ezmlm-parser.php,v 1.3 2007/04/19 15:34:35 neiluj Exp $
42
//
42
//
Line 85... Line 85...
85
	function recent_msgs($show = 20, $month = "") {
85
	function recent_msgs($show = 20, $month = "") {
Line 86... Line 86...
86
		
86
		
Line 87... Line 87...
87
		$repertoire_archive = opendir($this->listdir . "/archive/");
87
		$repertoire_archive = opendir($this->listdir . "/archive/");
-
 
88
 
-
 
89
		$repertoire_message = array() ;
-
 
90
		$dernier_repertoire = 0 ;
-
 
91
		while (false !== ($item = readdir($repertoire_archive))) {
88
 
92
			// $item contient les noms des repertoires
89
		$repertoire_message = array() ;
93
			// on ne garde que ceux qui sont des chiffres
-
 
94
 
90
 
95
			if (preg_match('/[0-9]+/', $item)) {
91
		$numArchive = $this->getNumArchive();
96
				// on ouvre le fichier d index de chaque repertoire
-
 
97
				if ((int) $item > $dernier_repertoire) $dernier_repertoire = (int) $item;
-
 
98
			
92
		$dernier_repertoire = floor($numArchive / 100);
99
			}
93
 
100
		}
94
		$tableau_message = array() ;
101
		$tableau_message = array() ;
95
		$compteur_message = 0 ;
102
		$compteur_message = 0 ;
96
		$fichier_index = fopen ($this->listdir.'/archive/'.$dernier_repertoire.'/index', 'r') ;
103
		$fichier_index = fopen ($this->listdir.'/archive/'.$dernier_repertoire.'/index', 'r') ;
Line 167... Line 174...
167
		while (!feof($fd)) { $data .= fgets($fd,4096); }
174
		while (!feof($fd)) { $data .= fgets($fd,4096); }
168
		fclose($fd);
175
		fclose($fd);
169
		return $this->parse($data,$simple);
176
		return $this->parse($data,$simple);
170
	}
177
	}
Line 171... Line 178...
171
 
178
 
172
    // parse_file_headers - ouvre un fichier et analyse les entête
179
    // parse_file_headers - ouvre un fichier et analyse les ent�tes
173
	function parse_file_headers($file,$simple = FALSE) {
180
	function parse_file_headers($file,$simple = FALSE) {
174
		if (!is_file($file)) {
181
		if (!is_file($file)) {
175
			if (is_file($this->listdir . "/" . $file)) { $file = $this->listdir . "/" . $file; }
182
			if (is_file($this->listdir . "/" . $file)) { $file = $this->listdir . "/" . $file; }
176
			else if (is_file($this->listdir . "/archive/" . $file)) { $file = $this->listdir . "/archive/" . $file; }
183
			else if (is_file($this->listdir . "/archive/" . $file)) { $file = $this->listdir . "/archive/" . $file; }
Line 241... Line 248...
241
                //echo htmlspecialchars($this->headers['from'])."<br />" ;
248
                //echo htmlspecialchars($this->headers['from'])."<br />" ;
242
				$last = strtolower($hdr[0]);
249
				$last = strtolower($hdr[0]);
243
			}
250
			}
244
		}
251
		}
245
        // ajout alex
252
        // ajout alex
246
        // pour supprimer le problème des ISO...
253
        // pour supprimer le probl�me des ISO...
247
        // a déplacer ailleur, et appelé avant affichage
254
        // a d�placer ailleur, et appel� avant affichage
Line 248... Line 255...
248
        
255
        
249
        if (preg_match ('/windows-[0-9][0-9][0-9][0-9]/', $this->headers['subject'], $nombre)) {
256
        if (preg_match ('/windows-[0-9][0-9][0-9][0-9]/', $this->headers['subject'], $nombre)) {
250
            $reg_exp = $nombre[0] ;
257
            $reg_exp = $nombre[0] ;
251
        } else {
258
        } else {
Line 351... Line 358...
351
	// After the parts are broken up they are then turned into parser objects and the
358
	// After the parts are broken up they are then turned into parser objects and the
352
	// resulting array of parts is set to $this->parts;
359
	// resulting array of parts is set to $this->parts;
353
	function _get_parts($data,$boundary) {
360
	function _get_parts($data,$boundary) {
354
		$inpart = -1;
361
		$inpart = -1;
355
		$lines = preg_split('/\n/', $data);
362
		$lines = preg_split('/\n/', $data);
356
        // La première partie contient l'avertissement pour les client mail ne supportant pas
363
        // La premi�re partie contient l'avertissement pour les client mail ne supportant pas
357
        // multipart, elle est stocké dans parts[-1]
364
        // multipart, elle est stock� dans parts[-1]
358
		while(list($key,$val) = each($lines)) {
365
		while(list($key,$val) = each($lines)) {
359
			if ($val == "--" . $boundary) { $inpart++; continue; } // start of a part
366
			if ($val == "--" . $boundary) { $inpart++; continue; } // start of a part
360
			else if ($val == "--" . $boundary . "--") { break; } // the end of the last part
367
			else if ($val == "--" . $boundary . "--") { break; } // the end of the last part
361
			else { $parts[$inpart] .= $val . "\n"; }
368
			else { $parts[$inpart] .= $val . "\n"; }
362
		}
369
		}
Line 363... Line 370...
363
        
370
        
364
		for ($i = 0; $i < count($parts) - 1; $i++) {    // On saute la première partie
371
		for ($i = 0; $i < count($parts) - 1; $i++) {    // On saute la premi�re partie
365
			$part[$i] = new ezmlm_parser();
372
			$part[$i] = new ezmlm_parser();
366
			$part[$i]->parse($parts[$i]);
373
			$part[$i]->parse($parts[$i]);
367
			$this->parts[$i] = $part[$i];
374
			$this->parts[$i] = $part[$i];
368
            //echo $this->parts[$i]."<br>" ;
375
            //echo $this->parts[$i]."<br>" ;