private function getEmailFromParams(SugarBean $bean, $params) { if (!array_key_exists('email_target_type', $params)) { return ''; } switch ($params['email_target_type']) { case 'Email Address': return array_key_exists('email', $params) ? $params['email'] : ''; case 'Specify User': $user = new User(); $user->retrieve($params['email_user_id']); return $user->emailAddress->getPrimaryAddress($user); break; case 'Related Field': $emailTarget = $params['email_target']; $relatedFields = $bean->get_related_fields(); $field = $relatedFields[$emailTarget]; $linkedBeans = $bean->get_linked_beans($field['link'], $field['module']); if ($linkedBeans) { $linkedBean = $linkedBeans[0]; return $linkedBean->emailAddress->getPrimaryAddress($linkedBean); } break; case 'Record Email': return $bean->emailAddress->getPrimaryAddress($bean); break; default: return ''; } return ""; }
function run_action(SugarBean $bean, $params = array(), $in_save = false) { if (isset($params['rel_type']) && $params['rel_type'] != '' && $bean->module_dir != $params['rel_type']) { $relatedFields = $bean->get_linked_fields(); $field = $relatedFields[$params['rel_type']]; if (!isset($field['module']) || $field['module'] == '') { $field['module'] = getRelatedModule($bean->module_dir, $field['name']); } $linkedBeans = $bean->get_linked_beans($field['name'], $field['module']); if ($linkedBeans) { foreach ($linkedBeans as $linkedBean) { $this->set_record($linkedBean, $bean, $params, 'false'); $this->set_relationships($linkedBean, $bean, $params); } } } else { $this->set_record($bean, $bean, $params, $in_save); $this->set_relationships($bean, $bean, $params); } return true; }
function getUpdateDisplayHead(SugarBean $update) { if ($update->contact_id) { $name = $update->getUpdateContact()->name; } elseif ($update->assigned_user_id) { $name = $update->getUpdateUser()->name; } else { $name = "Unknown"; } $html = "<a href='' onclick='toggleCaseUpdate(\"" . $update->id . "\");return false;'>"; $html .= "<img id='caseUpdate" . $update->id . "Image' class='caseUpdateImage' src='" . SugarThemeRegistry::current()->getImageURL('basic_search.gif') . "'>"; $html .= "</a>"; $html .= "<span>" . ($update->internal ? "<strong>Internal</strong> " : '') . $name . " at " . $update->date_entered . "</span><br>"; $notes = $update->get_linked_beans('notes', 'Notes'); if ($notes) { $html .= "Attachments: "; foreach ($notes as $note) { $html .= "<a href='index.php?module=Notes&action=DetailView&record={$note->id}'>{$note->filename}</a> "; } } return $html; }
function parse_template(SugarBean $bean, &$template, $object_override = array()) { global $sugar_config; require_once 'modules/AOW_Actions/actions/templateParser.php'; $object_arr[$bean->module_dir] = $bean->id; foreach ($bean->field_defs as $bean_arr) { if ($bean_arr['type'] == 'relate') { if (isset($bean_arr['module']) && $bean_arr['module'] != '' && isset($bean_arr['id_name']) && $bean_arr['id_name'] != '' && $bean_arr['module'] != 'EmailAddress') { $idName = $bean_arr['id_name']; if (isset($bean->field_defs[$idName]) && $bean->field_defs[$idName]['source'] != 'non-db') { if (!isset($object_arr[$bean_arr['module']])) { $object_arr[$bean_arr['module']] = $bean->{$idName}; } } } } else { if ($bean_arr['type'] == 'link') { if (!isset($bean_arr['module']) || $bean_arr['module'] == '') { $bean_arr['module'] = getRelatedModule($bean->module_dir, $bean_arr['name']); } if (isset($bean_arr['module']) && $bean_arr['module'] != '' && !isset($object_arr[$bean_arr['module']]) && $bean_arr['module'] != 'EmailAddress') { $linkedBeans = $bean->get_linked_beans($bean_arr['name'], $bean_arr['module'], array(), 0, 1); if ($linkedBeans) { $linkedBean = $linkedBeans[0]; if (!isset($object_arr[$linkedBean->module_dir])) { $object_arr[$linkedBean->module_dir] = $linkedBean->id; } } } } } } $object_arr['Users'] = is_a($bean, 'User') ? $bean->id : $bean->assigned_user_id; $object_arr = array_merge($object_arr, $object_override); $parsedSiteUrl = parse_url($sugar_config['site_url']); $host = $parsedSiteUrl['host']; if (!isset($parsedSiteUrl['port'])) { $parsedSiteUrl['port'] = 80; } $port = $parsedSiteUrl['port'] != 80 ? ":" . $parsedSiteUrl['port'] : ''; $path = !empty($parsedSiteUrl['path']) ? $parsedSiteUrl['path'] : ""; $cleanUrl = "{$parsedSiteUrl['scheme']}://{$host}{$port}{$path}"; $url = $cleanUrl . "/index.php?module={$bean->module_dir}&action=DetailView&record={$bean->id}"; $template->subject = str_replace("\$contact_user", "\$user", $template->subject); $template->body_html = str_replace("\$contact_user", "\$user", $template->body_html); $template->body = str_replace("\$contact_user", "\$user", $template->body); $template->subject = aowTemplateParser::parse_template($template->subject, $object_arr); $template->body_html = aowTemplateParser::parse_template($template->body_html, $object_arr); $template->body_html = str_replace("\$url", $url, $template->body_html); $template->body = aowTemplateParser::parse_template($template->body, $object_arr); $template->body = str_replace("\$url", $url, $template->body); }
function run_action(SugarBean $bean, $params = array(), $in_save = false) { global $sugar_config, $beanList; include_once 'modules/EmailTemplates/EmailTemplate.php'; require_once 'modules/AOW_Actions/actions/templateParser.php'; $emailTemp = new EmailTemplate(); $emailTemp->retrieve($params['email_template']); if ($emailTemp->id == '') { return false; } $object_arr[$bean->module_dir] = $bean->id; foreach ($bean->field_defs as $bean_arr) { if ($bean_arr['type'] == 'relate') { if (isset($bean_arr['module']) && $bean_arr['module'] != '' && isset($bean_arr['id_name']) && $bean_arr['id_name'] != '' && $bean_arr['module'] != 'EmailAddress') { $relate_bean = new $beanList[$bean_arr['module']](); if (!isset($object_arr[$relate_bean->module_dir])) { $object_arr[$relate_bean->module_dir] = $bean->{$bean_arr}['id_name']; } } } else { if ($bean_arr['type'] == 'link') { if (!isset($bean_arr['module']) || $bean_arr['module'] == '') { $bean_arr['module'] = getRelatedModule($bean->module_dir, $bean_arr['name']); } if (isset($bean_arr['module']) && $bean_arr['module'] != '' && !isset($object_arr[$bean_arr['module']]) && $bean_arr['module'] != 'EmailAddress') { $linkedBeans = $bean->get_linked_beans($bean_arr['name'], $bean_arr['module']); if ($linkedBeans) { $linkedBean = $linkedBeans[0]; if (!isset($object_arr[$linkedBean->module_dir])) { $object_arr[$linkedBean->module_dir] = $linkedBean->id; } } } } } } $object_arr['Users'] = $bean->assigned_user_id; $parsedSiteUrl = parse_url($sugar_config['site_url']); $host = $parsedSiteUrl['host']; if (!isset($parsedSiteUrl['port'])) { $parsedSiteUrl['port'] = 80; } $port = $parsedSiteUrl['port'] != 80 ? ":" . $parsedSiteUrl['port'] : ''; $path = !empty($parsedSiteUrl['path']) ? $parsedSiteUrl['path'] : ""; $cleanUrl = "{$parsedSiteUrl['scheme']}://{$host}{$port}{$path}"; $url = $cleanUrl . "/index.php?module={$bean->module_dir}&action=DetailView&record={$bean->id}"; $subject = str_replace("\$contact_user", "\$user", $emailTemp->subject); $body_html = str_replace("\$contact_user", "\$user", $emailTemp->body_html); $body_plain = str_replace("\$contact_user", "\$user", $emailTemp->body); $subject = aowTemplateParser::parse_template($subject, $object_arr); $body_html = aowTemplateParser::parse_template($body_html, $object_arr); $body_html = str_replace("\$url", $url, $body_html); $body_plain = aowTemplateParser::parse_template($body_plain, $object_arr); $body_plain = str_replace("\$url", $url, $body_plain); $emails = $this->getEmailsFromParams($bean, $params); return $this->sendEmail($emails['to'], $subject, $body_html, $body_plain, $bean, $emails['cc'], $emails['bcc']); }