Subversion Repositories Applications.papyrus

Rev

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

Rev 1705 Rev 1837
Line 1... Line 1...
1
<?php
1
<?php
2
// $Id: ezmlm-msgdisplay.php,v 1.7.2.1 2007-11-19 13:38:50 alexandre_tb Exp $
2
// $Id: ezmlm-msgdisplay.php,v 1.7.2.2 2008-05-14 07:19:57 alexandre_tb Exp $
3
//
3
//
4
// ezmlm-msgdisplay.php - ezmlm-php v2.0
4
// ezmlm-msgdisplay.php - ezmlm-php v2.0
5
// --------------------------------------------------------------
5
// --------------------------------------------------------------
6
// Will parse a template (if specified) and display a message.
6
// Will parse a template (if specified) and display a message.
7
// Includes a default template.
7
// Includes a default template.
Line 27... Line 27...
27
	    }
27
	    }
28
	$this->msgfile = $msgfile ;
28
	$this->msgfile = $msgfile ;
29
        $message = file_get_contents($msgfile) ;
29
        $message = file_get_contents($msgfile) ;
30
	// En cours de codage
30
	// En cours de codage
31
	// La fonction display retourne tout simplement le source du mail
31
	// La fonction display retourne tout simplement le source du mail
32
	// Il n'y a plus d'analyse à ce niveau
32
	// Il n'y a plus d'analyse a ce niveau
Line 33... Line 33...
33
	
33
	
34
	return $message;
34
	return $message;
35
        $mimeDecode = new Mail_mimeDecode($message) ;
35
        $mimeDecode = new Mail_mimeDecode($message) ;
Line 36... Line 36...
36
        $mailDecode = $mimeDecode->decode(array('decode_bodies' => 'true', 'include_bodies' => 'true')) ;
36
        $mailDecode = $mimeDecode->decode(array('decode_bodies' => 'true', 'include_bodies' => 'true')) ;
37
        
37
        
38
        // $msg->msgfile contient le chemin du fichier du mail en partant de la racine
38
        // $msg->msgfile contient le chemin du fichier du mail en partant de la racine
Line 39... Line 39...
39
        // Le point d'exclamation est le délimiteur de l'expression régulière
39
        // Le point d'exclamation est le delimiteur de l'expression reguliere
40
		$relfile = preg_replace('!' . $this->listdir . '!', '', $msgfile);
40
		$relfile = preg_replace('!' . $this->listdir . '!', '', $msgfile);
41
        
41
        
42
		$a1 = preg_replace('!/archive/(.*)/.*$!', '\1', $relfile);  // $a1 contient le nom du répertoire
42
		$a1 = preg_replace('!/archive/(.*)/.*$!', '\1', $relfile);  // $a1 contient le nom du repertoire
43
		$a2 = preg_replace('!/archive/.*/(.*)$!', '\1', $relfile);  // $a2 contient le nom du fichier
43
		$a2 = preg_replace('!/archive/.*/(.*)$!', '\1', $relfile);  // $a2 contient le nom du fichier
44
		if (isset($mailDecode->headers['date'])) $msgtime = strtotime(preg_replace ('/CEST/', '', $mailDecode->headers['date']));
44
		if (isset($mailDecode->headers['date'])) $msgtime = strtotime(preg_replace ('/CEST/', '', $mailDecode->headers['date']));
Line 254... Line 254...
254
    }
254
    }
Line 255... Line 255...
255
    
255
    
256
    
256
    
257
	function parse_template(&$mailDecode, $numero_mail, $numero_mois, $num_part = '') {
257
	function parse_template(&$mailDecode, $numero_mail, $numero_mois, $num_part = '') {
258
        static $profondeur = array();
258
        static $profondeur = array();
Line 259... Line 259...
259
        array_push ($profondeur, $num_part) ;
259
        if ($num_part != '') array_push ($profondeur, $num_part) ;
260
        $corps = '' ;
260
        $corps = '' ;
261
        
261
        
Line 270... Line 270...
270
                    	if ($mailDecode->parts[$i]->ctype_parameters['charset'] == 'UTF-8') {
270
                    	if ($mailDecode->parts[$i]->ctype_parameters['charset'] == 'UTF-8') {
271
                    		$corps .= utf8_decode($mailDecode->parts[$i]->body);	
271
                    		$corps .= utf8_decode($mailDecode->parts[$i]->body);	
272
                    	}
272
                    	}
273
                    }
273
                    }
274
                    break;
274
                    break;
275
                    case 'html' : $corps .= $mailDecode->parts[$i]->body ;
275
                    case 'html' : $corps .= trim(strip_tags ($mailDecode->parts[$i]->body, '<p><a>'));
276
                    break ;
276
                    break ;
277
                    case 'mixed' : 
277
                    case 'mixed' : 
278
                    case 'rfc822' :
278
                    case 'rfc822' :
279
                    case 'alternative' :
279
                    case 'alternative' :
280
                    case 'appledouble' :
280
                    case 'appledouble' :
Line 310... Line 310...
310
                    $corps .= $nom_piece_jointe;
310
                    $corps .= $nom_piece_jointe;
311
                    $corps .= '</a><br />' ;
311
                    $corps .= '</a><br />' ;
312
                    break ;
312
                    break ;
313
                }
313
                }
314
            }
314
            }
-
 
315
            
315
            $this->message_rendu .= preg_replace('/<ezmlm-body>/i', $this->cleanup_body($corps,TRUE), $this->msgtmpl);
316
            $this->message_rendu .= preg_replace('/<ezmlm-body>/i', $this->cleanup_body($corps,TRUE), $this->msgtmpl);
Line 316... Line 317...
316
            
317
            
Line 317... Line 318...
317
		} else if ($mailDecode->ctype_primary == 'message') {
318
		} else if ($mailDecode->ctype_primary == 'message') {
Line 342... Line 343...
342
                } else {
343
                } else {
343
                    $this->message_rendu .= preg_replace('/<ezmlm-body>/i', '<pre>' . $this->cleanup_body($mailDecode->body,TRUE) . '</pre>', $this->msgtmpl);
344
                    $this->message_rendu .= preg_replace('/<ezmlm-body>/i', '<pre>' . $this->cleanup_body($mailDecode->body,TRUE) . '</pre>', $this->msgtmpl);
344
                }
345
                }
345
            }
346
            }
346
		}
347
		}
-
 
348
		array_pop ($profondeur);
347
	}	
349
	}	
Line 348... Line 350...
348
 
350
 
349
	function ezmlm_msgdisplay() {
351
	function ezmlm_msgdisplay() {
350
		$this->ezmlm_php();
352
		$this->ezmlm_php();