| 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>" ;
  |