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; }
public function getPlainBody() { return \GO\Base\Util\String::html_to_text($this->_loadedBody); }