DataObjects/Core_person_signup.php
[Pman.Core] / DataObjects / Core_email.php
index 83d846c..1f9318d 100644 (file)
@@ -188,18 +188,22 @@ class Pman_Core_DataObjects_Core_email extends DB_DataObject
         
         foreach ($xpath->query('//img[@src]') as $img) { // process images!
             $href = $img->getAttribute('src');
-            $cid = explode('#', $href);
-            if(isset($cid[1])){
-                $img->setAttribute('src', 'cid:' . $cid[1]);
+            $hash = explode('#', $href);
+            // we name all our cid's as attachment-*
+            // however the src url may be #image-*
+            
+            
+            if(!isset($hash[1])){
+                continue;
+            }
+            $cid = explode('-', $hash[1]);
+            if(!empty($cid[1])){
+                $img->setAttribute('src', 'cid:attachment-' . $cid[1]);
             }
         }
         
-        $unsubscribe = false;
+        $unsubscribe = $this->unsubscribe_url();
         
-        if(!empty($cfg)){
-            $unsubscribe = $cfg ['server_baseurl'] . '/Crm/Unsubscribe/' . $this->id . '/{person.id}';
-        }
-       
         foreach ($xpath->query('//a[@href]') as $a) { 
             
             $href = $a->getAttribute('href');
@@ -259,6 +263,19 @@ class Pman_Core_DataObjects_Core_email extends DB_DataObject
          
         return;
     }
+    
+    function unsubscribe_url()
+    {
+        $unsubscribe = false;
+        
+        $cfg = isset(HTML_FlexyFramework::get()->Pman_Crm) ? HTML_FlexyFramework::get()->Pman_Crm : false;
+        
+        if(!empty($cfg)){
+            $unsubscribe = $cfg ['server_baseurl'] . '/Crm/Unsubscribe/' . $this->id . '/{person.id}';
+        }
+        
+        return $unsubscribe;
+    }
     /**
      *
      * Usage:
@@ -273,6 +290,7 @@ class Pman_Core_DataObjects_Core_email extends DB_DataObject
      * $x->send(array(
      *      'rcpts' => "Tester <sales@roojs.com>",
      *      'page' => $this
+     *      'mailer_opts' => array( <<< additional options, like urlmap..)
      *       'link' => 'http://......'
        );
      * // on the template use {link:h} to render the link
@@ -311,15 +329,22 @@ class Pman_Core_DataObjects_Core_email extends DB_DataObject
         
         $templateDir = session_save_path() . '/email-cache-' . $ui['name'] ;
         //print_r($this);
+        
+        
         $cfg = array(
             'template'=> $this->tableName() . '-' . $this->id,
             'templateDir' => $templateDir,
             'page' => $this,
-            'contents' => $contents
+            'contents' => $contents,
+            'css_embed' => true, // we should always try and do this with emails...
         );
         if (isset($contents['rcpts'])) {
             $cfg['rcpts'] = $contents['rcpts'];
         }
+        if (isset($contents['mailer_opts']) && is_array($contents['mailer_opts'])) {
+            $cfg = array_merge($contents['mailer_opts'], $cfg);
+        }
+        
         
         $r = new Pman_Core_Mailer($cfg);