data = $data; } function from_addrs() { return ''; } function from() { if(isset($this->data['from'])) return $this->formatAddr($this->data['from']); return ''; } function formatAddr($addr) { if(is_array($addr)) { $str = ''; foreach($addr as $key => $value) { if(is_array($value)) { $focus = $this->getBean($value[0], $value[1]); if($focus != null) { if($value[0] == "Accounts") $str .= $focus->name.' <'.$focus->email1.'>; '; else if($value[0] == "Contacts" || $value[0] == "Users" || $value[0] == "Employees" || $value[0] == "Leads") $str .= $focus->full_name.' <'.$focus->email1.'>; '; } } else { $str .= $value; } } return $str; } return ''; } function to_addrs() { if(isset($this->data['to'])) { return $this->formatAddr($this->data['to']); } return ''; } function to_addrs_ids() { return ''; } function to_addrs_names() { return ''; } function to_addrs_emails() { return ''; } function cc_addrs() { if(isset($this->data['cc'])) { return $this->formatAddr($this->data['cc']); } return ''; } function cc_addrs_ids() { return ''; } function cc_addrs_names() { return ''; } function cc_addrs_emails() { return ''; } function bcc_addrs() { if(isset($this->data['bcc'])) { return $this->parseEmails($this->data['bcc']); } return ''; } function bcc_addrs_ids() { return ''; } function bcc_addrs_names() { return ''; } function bcc_addrs_emails() { return ''; } function subject() { if(isset($this->data['subject'])) { return $this->data['subject']; } return ''; } function parseEmails($e, $glue_before = "<", $glue_after =">; ", $el = 0) { $str = ''; for($i = 0; $i < count($e); $i ++) { if(!is_array($e[$i])) { $str .= $glue_before.$e[$i].$glue_after; } else { $str .= $glue_before.$e[$i][$el].$glue_after; } } return $str; } function parseEmail($e) { return ''; } function descriptionHTML() { if(isset($this->data['body_html'])) { return $this->data['body_html']; } return ''; } function description() { if(isset($this->data['body'])) { return $this->data['body']; } return ''; } function parentType() { if(isset($this->data['parent']) && isset($this->data['parent']['type'])) { return $this->data['parent']['type']; } return ''; } function saveEmailRelationToAssignedIds($email_id) { if(isset($this->data['assigned_ids'])) { foreach($this->data['assigned_ids'] as $key => $value) { if($key != "EcmDocumentTemplates" && $key != "Users") { $focus = $this->getBean($key, $value); $focus->load_relationship("emails"); if(isset($focus->emails)) { $focus->emails->add($email_id); } } } } } function assignedUserId() { if(isset($this->data['assigned_user']) && isset($this->data['assigned_user']['id'])) { return $this->data['assigned_user']['id']; } global $current_user; return $current_user->id; } function assignedUserName() { if(isset($this->data['assigned_user']) && isset($this->data['assigned_user']['name'])) { return $this->data['assigned_user']['name']; } global $current_user; return $current_user->user_name; } function templateId() { if(isset($this->data['template_id'])) { return $this->data['template_id']; } return ''; } function loadMFP($fill_focus = true) { if(isset($this->data['assigned_ids'])) { require_once('modules/EcmDocumentTemplates/ModuleFieldsParser/ModuleFieldsParser.php'); $mfp = new ModuleFieldsParser(); $mfp->clear(); global $app_list_strings; global $beanList; foreach($this->data['assigned_ids'] as $key => $value) { if($key == "Users" && (!isset($value) || $value == '')) $value = $this->assignedUserId(); $focus = $fill_focus ? $this->getBean($key, $value) : null; $mfp->add($key, str_replace("ecm", "", strtolower($beanList[$key])).'_', $focus, $app_list_strings['moduleList'][$key]); } return $mfp; } return null; } function getBean($module, $id) { global $beanList, $beanFiles; $file = $beanFiles[$beanList[$module]]; if(file_exists($file)) { require_once($file); $focus = new $beanList[$module](); $focus->retrieve($id); $focus->format_all_fields(); return $focus; } return null; } function loadParserArray($name = '') { if(isset($this->data['assigned_ids'])) { $mfp = $this->loadMFP(false); $mfp_arr = $mfp->getFormHTML(false,$name); return $mfp_arr; } return ''; } function getModuleName($module) { global $app_list_strings; return $app_list_strings['moduleList'][$module]; } function beanName($module, $id) { if($module == "Users") return $this->assignedUserName(); $focus = $this->getBean($module, $id); if($focus != null) return $focus->get_summary_text(); return ''; } function extraAssigned() { if(isset($this->data) && is_array($this->data['assigned_ids'])) { $ea = ''; foreach($this->data['assigned_ids'] as $key => $value) { if($key == "Users" && (!isset($value) || $value == '')) { $value = $this->assignedUserId(); } if(isset($value) && $value != '') $ea .= $this->getModuleName($key).',  '.$this->beanName($key, $value). '
'; } return $ea; } return ''; } function getAttachments() { $arr = array(); if(isset($this->data['attachments']['links']) && is_array($this->data['attachments']['links'])) $arr = array_merge($arr, $this->data['attachments']['links']); if(isset($this->data['attachments']['sugar']) && is_array($this->data['attachments']['sugar'])) { $tmp = array(); foreach($this->data['attachments']['sugar'] as $att) { $link = "index.php?module=".$att[1]."&action=".$att[2]; $att[3] = array_merge($att[3], $att[4]); if(is_array($att[3])) { foreach($att[3] as $key => $value) { $link .= "&".$key."=".$value; } } $tmp[] = array($att[0], $link); } $arr = array_merge($arr, $tmp); } foreach($arr as $key => $value) $arr[$key]['md5'] = md5($value[0].$value[1]); return $arr; } function getAttachmentsNotes($ids, $parent_name, $parent_module, $parent_id) { $notes = array(); if(isset($this->data['attachments']['links']) && is_array($this->data['attachments']['links'])) foreach($this->data['attachments']['links'] as $att) if(in_array(md5($att[0].$att[1]), $ids)) $notes[] = $this->createNoteFromLink($att[0], $att[2], $att[1], $parent_name, $parent_module, $parent_id); if(isset($this->data['attachments']['sugar']) && is_array($this->data['attachments']['sugar'])) { foreach($this->data['attachments']['sugar'] as $att) { $link = "index.php?module=".$att[1]."&action=".$att[2]; $attt = array_merge($att[3], $att[4]); if(is_array($attt)) { foreach($attt as $key => $value) { $link .= "&".$key."=".$value; } } if(in_array(md5($att[0].$link), $ids)) { $tmp = array('module' => $att[1], 'action' => $att[2]); if(is_array($att[3])) $tmp = array_merge($tmp, $att[3]); $notes[] = $this->createNoteFromSugarFile($att[0], $att[5], $tmp, $parent_name, $parent_module, $parent_id); } } } return $notes; } function createNoteFromSugarFile($name, $mime_type, $data, $parent_name, $parent_module, $parent_id) { require_once('modules/Notes/Note.php'); $n = new Note(); $n->name = translate('LBL_EMAIL_ATTACHMENT', "Emails").': '.$name; $n->filename = $name; $n->file_mime_type = $mime_type; $n->parent_id = $parent_id; $n->parent_type = $parent_module; $n->parent_name = $parent_name; $nid = $n->save(); $post = $_POST; $get = $_GET; $request = $_REQUEST; $_GET = array_merge($_GET, $data); $_REQUEST = array_merge($_REQUEST, $data); $_POST = array(); ob_start(); include("modules/".$data['module']."/".$data['action'].".php"); $file_data = ob_get_contents(); ob_end_clean(); global $sugar_config; $f=fopen($sugar_config['upload_dir'].$nid,'wb'); if($f) { fwrite($f,$file_data,strlen($file_data)); } fclose($f); $_POST = $post; $_GET = $get; $_REQUEST = $request; return $n; } function createNoteFromLink($name, $mime_type, $link, $parent_name, $parent_module, $parent_id) { require_once('modules/Notes/Note.php'); $n = new Note(); $n->name = translate('LBL_EMAIL_ATTACHMENT', "Emails").': '.$name; $n->filename = $name; $n->file_mime_type = $mime_type; $n->parent_id = $parent_id; $n->parent_type = $parent_module; $n->parent_name = $parent_name; $nid = $n->save(); global $sugar_config; if(!copy($link, $sugar_config['upload_dir'].$nid)) { //$errors= error_get_last(); echo "COPY ERROR: ".$errors['type']; echo "
\n".$errors['message']; } return $n; } } ?>