Add php files
This commit is contained in:
372
modules/EcmEmails/EcmEmailsDataFormatter.php
Executable file
372
modules/EcmEmails/EcmEmailsDataFormatter.php
Executable file
@@ -0,0 +1,372 @@
|
||||
<?php
|
||||
|
||||
class EcmEmailsDataFormatter {
|
||||
|
||||
var $data;
|
||||
|
||||
function EcmEmailsDataFormatter($data) {
|
||||
$this->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).
|
||||
'
|
||||
<input type="hidden" name="assigned_ids[]" value="'.$key.":|:".$value.'" />
|
||||
<br />
|
||||
';
|
||||
}
|
||||
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 "<br />\n".$errors['message'];
|
||||
}
|
||||
|
||||
return $n;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user