check file exists
[Pman.Core] / ImportMailMessage.php
index 2416cb2..ce4ea30 100644 (file)
 <?php
 
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
+// should be in import folder... need to know where this is used though...
 
-/**
- * Description of ImportMailMessage
- *
- * @author edward
- */
-class ImportMailMessage {
-    //put your code here
-}
+require_once 'ConvertStyle.php';
 
-?>
+class Pman_Core_ImportMailMessage extends Pman_Core_ConvertStyle 
+{
+    function getAuth()
+    {
+        if (HTML_FlexyFramework::get()->cli) {
+            return true;
+        }
+        $this->authUser = $this->getAuthUser();
+        if (!$this->authUser) {
+            return false;
+        }
+        return true;
+    }
+    
+    function get($v, $opts=array())
+    {
+        $this->post();
+        
+        return $this->jerr("not allowed");
+    }
+    
+    function post($v)
+    {   
+        if(isset($_REQUEST['_convertToPlain']))
+        {
+            require_once 'System.php';
+            $tmpdir  = System::mktemp("-d convertPlain");
+            $path = $tmpdir . '/' . time() . '.html';
+            
+            if(isset($_REQUEST['_check_unsubscribe'])){
+                libxml_use_internal_errors (true);
+                $doc = new DOMDocument('1.0', 'UTF-8');
+                $doc->loadHTML($_REQUEST['bodytext']);
+                $xpath = new DOMXpath($doc);
+                foreach ($xpath->query('//a[@href]') as $a) { 
+                    $href = $a->getAttribute('href');
+                    
+                    if(!preg_match('/^#unsubscribe/', $href)){
+                        continue;
+                    }
+                    $a->parentNode->replaceChild($doc->createTextNode($a->nodeValue . ' {unsubscribe_link}'), $a);
+                }
+                
+                $_REQUEST['bodytext'] = $doc->saveHTML();
+                libxml_use_internal_errors (false);
+            }
+            
+            if(!file_exists($path)){
+               file_put_contents($path, $_REQUEST['bodytext']); 
+            }
+            require_once 'File/Convert.php';
+            $fc = new File_Convert($path, 'text/html');
+            
+            $plain = $fc->convert('text/plain');
+            $this->jok(file_get_contents($plain));
+        }
+        
+        // Import from URL
+        if(isset($_REQUEST['importUrl']))
+        {
+            $this->checkHeader($_REQUEST['importUrl']);
+            $data = $this->convertStyle($_REQUEST['importUrl'], '', true);
+         
+            $this->jok($data);
+            
+        }
+     
+        // Import from file
+        $htmlFile = DB_DataObject::factory('images');
+        $htmlFile->setFrom(array(
+               'onid' => 0,
+               'ontable' =>'crm_mailing_list_message'
+        ));
+        $htmlFile->onUpload(false);
+       
+        if($htmlFile->mimetype != 'text/html')
+        {
+            $this->jerr('accept html file only!');
+        }
+        if(!file_exists($htmlFile->getStoreName()))
+        {
+            $this->jerr('update failed!');
+        }
+        
+        $data = $this->convertStyle('', $htmlFile->getStoreName(), false);
+        
+        $htmlFile->delete();
+        
+        unlink($htmlFile->getStoreName()) or die('Unable to delete the file');
+        
+        $this->jok($data);
+    }
+    
+}
\ No newline at end of file