Exemple #1
0
 public function loadTemplate($params)
 {
     if (GO::modules()->addressbook && !empty($params['template_id'])) {
         try {
             $template = \GO\Addressbook\Model\Template::model()->findByPk($params['template_id']);
             $templateContent = $template ? $template->content : '';
         } catch (\GO\Base\Exception\AccessDenied $e) {
             $templateContent = "";
         }
         $message = \GO\Email\Model\SavedMessage::model()->createFromMimeData($templateContent);
         $response['data'] = $message->toOutputArray(true, true);
         $presetbody = isset($params['body']) ? $params['body'] : '';
         if (!empty($presetbody) && strpos($response['data']['htmlbody'], '{body}') == false) {
             $response['data']['htmlbody'] = $params['body'] . '<br />' . $response['data']['htmlbody'];
         } else {
             $response['data']['htmlbody'] = str_replace('{body}', $presetbody, $response['data']['htmlbody']);
         }
         unset($response['data']['to'], $response['data']['cc'], $response['data']['bcc']);
         //			unset($response['data']['cc'], $response['data']['bcc'], $response['data']['subject']);
         $defaultTags = array('contact:salutation' => GO::t('default_salutation_unknown'));
         // Parse the link tag
         $response['data']['htmlbody'] = \GO\Addressbook\Model\Template::model()->replaceLinkTag($response['data']['htmlbody'], $message);
         //keep template tags for mailings to addresslists
         if (empty($params['addresslist_id'])) {
             //if contact_id is not set but email is check if there's contact info available
             if (!empty($params['to']) || !empty($params['contact_id']) || !empty($params['company_id'])) {
                 if (!empty($params['contact_id'])) {
                     $contact = \GO\Addressbook\Model\Contact::model()->findByPk($params['contact_id']);
                 } else {
                     $email = \GO\Base\Util\String::get_email_from_string($params['to']);
                     $contact = \GO\Addressbook\Model\Contact::model()->findSingleByEmail($email);
                 }
                 $company = false;
                 if (!empty($params['company_id'])) {
                     $company = \GO\Addressbook\Model\Company::model()->findByPk($params['company_id']);
                 }
                 if ($company) {
                     $response['data']['htmlbody'] = \GO\Addressbook\Model\Template::model()->replaceModelTags($response['data']['htmlbody'], $company, 'company:', true);
                 }
                 if ($contact) {
                     $response['data']['htmlbody'] = \GO\Addressbook\Model\Template::model()->replaceContactTags($response['data']['htmlbody'], $contact);
                 } else {
                     $response['data']['htmlbody'] = \GO\Addressbook\Model\Template::model()->replaceCustomTags($response['data']['htmlbody'], $defaultTags, true);
                     $response['data']['htmlbody'] = \GO\Addressbook\Model\Template::model()->replaceUserTags($response['data']['htmlbody']);
                 }
             } else {
                 $response['data']['htmlbody'] = \GO\Addressbook\Model\Template::model()->replaceCustomTags($response['data']['htmlbody'], $defaultTags, true);
                 $response['data']['htmlbody'] = \GO\Addressbook\Model\Template::model()->replaceUserTags($response['data']['htmlbody']);
             }
         }
         if ($params['content_type'] == 'plain') {
             $response['data']['plainbody'] = \GO\Base\Util\String::html_to_text($response['data']['htmlbody'], false);
             unset($response['data']['htmlbody']);
         }
     } else {
         $response['data'] = array();
         if ($params['content_type'] == 'plain') {
             $response['data']['plainbody'] = '';
         } else {
             $response['data']['htmlbody'] = '';
         }
     }
     $response['success'] = true;
     return $response;
 }
Exemple #2
0
 public function getPlainBody()
 {
     return \GO\Base\Util\String::html_to_text($this->_loadedBody);
 }