ImportMailMessage.php
[Pman.Core] / ImportMailMessage.php
1 <?php
2
3 // should be in import folder... need to know where this is used though...
4
5 require_once 'ConvertStyle.php';
6
7 class Pman_Core_ImportMailMessage extends Pman_Core_ConvertStyle 
8 {
9     function getAuth()
10     {
11         
12         if (HTML_FlexyFramework::get()->cli) {
13             return true;
14         }
15         
16         $this->authUser = $this->getAuthUser();
17         if (!$this->authUser) {
18             return false;
19         }
20
21         return true;        
22     }
23     
24     function get($v, $opts=array())
25     {
26         $this->post();
27         
28         return $this->jerr("not allowed");
29     }
30     
31     function post($v)
32     {   
33         
34         if(isset($_REQUEST['_convertToPlain']))
35         {
36             require_once 'System.php';
37             $tmpdir  = System::mktemp("-d convertPlain");
38             $path = $tmpdir . '/' . time() . '.html';
39             
40             if(isset($_REQUEST['_check_unsubscribe'])){
41                 libxml_use_internal_errors (true);
42                 $doc = new DOMDocument('1.0', 'UTF-8');
43                 $doc->loadHTML($_REQUEST['bodytext']);
44                 $xpath = new DOMXpath($doc);
45                 foreach ($xpath->query('//a[@href]') as $a) { 
46                     $href = $a->getAttribute('href');
47                     
48                     if(!preg_match('/^#unsubscribe/', $href)){
49                         continue;
50                     }
51                     $a->parentNode->replaceChild($doc->createTextNode($a->nodeValue . ' {unsubscribe_link}'), $a);
52                 }
53                 
54                 $_REQUEST['bodytext'] = $doc->saveHTML();
55                 libxml_use_internal_errors (false);
56             }
57             
58             if(!file_exists($path)){
59                file_put_contents($path, $_REQUEST['bodytext']); 
60             }
61             require_once 'File/Convert.php';
62             $fc = new File_Convert($path, 'text/html');
63             
64             $plain = $fc->convert('text/plain');
65             $this->jok(file_get_contents($plain));
66         }
67         
68         // Import from URL
69         if(isset($_REQUEST['importUrl']))
70         {
71             
72             $this->checkHeader($_REQUEST['importUrl']);
73             
74             var_dump('die');exit;
75             
76             $data = $this->convertStyle($_REQUEST['importUrl'], '', true);
77          
78             $this->jok($data);
79             
80         }
81         
82         
83      
84         // Import from file
85         $htmlFile = DB_DataObject::factory('images');
86         $htmlFile->setFrom(array(
87                'onid' => 0,
88                'ontable' =>'crm_mailing_list_message'
89         ));
90         $htmlFile->onUpload(false);
91        
92         if($htmlFile->mimetype != 'text/html')
93         {
94             $this->jerr('accept html file only!');
95         }
96         if(!file_exists($htmlFile->getStoreName()))
97         {
98             $this->jerr('update failed!');
99         }
100         
101         $data = $this->convertStyle('', $htmlFile->getStoreName(), false);
102         
103         $htmlFile->delete();
104         
105         unlink($htmlFile->getStoreName()) or die('Unable to delete the file');
106         
107         $this->jok($data);
108     }
109     
110 }