exposeMethod($method);
}
}
public function checkPermission(Vtiger_Request $request)
{
return true;
}
public function process(Vtiger_Request $request)
{
$mode = $request->get('mode');
if (!empty($mode)) {
$this->invokeExposedMethod($mode, $request);
return;
}
$type = $request->get('type');
}
public function checkDuplicateKey(Vtiger_Request $request)
{
$adb = PearDatabase::getInstance();
$lblkey = $request->get('lblkey');
$result = $adb->pquery("SELECT label_id FROM vtiger_emakertemplates_label_keys WHERE label_key=?", array("C_" . $lblkey));
$num_rows = $adb->num_rows($result);
if ($num_rows > 0) {
$result = array('success' => true, 'message' => vtranslate('LBL_LABEL_KEY_EXIST', 'EMAILMaker'));
} else {
$result = array('success' => false);
}
$response = new Vtiger_Response();
$response->setResult($result);
$response->emit();
}
/**
* @throws Exception
*/
public function SaveCustomLabel(Vtiger_Request $request)
{
$labelId = $request->get('labelid');
$languageId = $request->get('langid');
$labelValue = $request->get('LblVal');
if (empty($labelId)) {
$labelKey = 'C_' . $request->get('LblKey');
$customLabel = EMAILMaker_CustomLabels_Model::getInstance($labelKey);
$customLabel->saveLabelKey();
} else {
$customLabel = EMAILMaker_CustomLabels_Model::getInstanceById($labelId);
}
$customLabel->saveLabelValue($languageId, $labelValue);
$response = new Vtiger_Response();
$response->setResult(array(
'labelid' => $customLabel->getLabelId(),
'langid' => $languageId,
'lblval' => $labelValue,
'lblkey' => $customLabel->getLabelKey(),
));
$response->emit();
}
/**
* @throws Exception
*/
public function SaveCustomLabelValues(Vtiger_Request $request)
{
$labelKey = $request->get('lblkey');
$customLabels = EMAILMaker_CustomLabels_Model::getInstance($labelKey);
$customLabels->saveLabelValues($request);
$response = new Vtiger_Response();
$response->setResult(array(
'success' => true
));
$response->emit();
}
public function deleteCustomLabel(Vtiger_Request $request)
{
$customLabels = EMAILMaker_CustomLabels_Model::getCleanInstance();
$customLabels->setLabelId($request->get('labelid'));
$customLabels->deleteLabelKeys();
$customLabels->deleteLabelValues();
$response = new Vtiger_Response();
$response->setResult(array('success' => true));
$response->emit();
}
public function DeleteCustomLabels(Vtiger_Request $request)
{
$params = array();
foreach ($_REQUEST as $key => $val) {
if ('chx_' === substr($key, 0, 4) && 'on' === $val) {
list($dump, $id) = explode('_', $key, 2);
if (is_numeric($id)) {
$params[] = $id;
}
}
}
if (EMAILMaker_Utils_Helper::count($params) > 0) {
$adb = PearDatabase::getInstance();
$sql1 = 'DELETE FROM vtiger_emakertemplates_label_vals WHERE label_id IN (' . generateQuestionMarks($params) . ')';
$sql2 = 'DELETE FROM vtiger_emakertemplates_label_keys WHERE label_id IN (' . generateQuestionMarks($params) . ')';
$adb->pquery($sql1, $params);
$adb->pquery($sql2, $params);
}
header("Location:index.php?module=EMAILMaker&view=CustomLabels");
}
public function SaveProductBlock(Vtiger_Request $request)
{
EMAILMaker_Debugger_Model::GetInstance()->Init();
$adb = PearDatabase::getInstance();
$tplid = $request->get('tplid');
$template_name = $request->get('template_name');
$body = $request->get('body');
if (isset($tplid) && $tplid != "") {
$adb->pquery("UPDATE vtiger_emakertemplates_productbloc_tpl SET name=?, body=? WHERE id=?", array($template_name, $body, $tplid));
} else {
$adb->pquery("INSERT INTO vtiger_emakertemplates_productbloc_tpl(name, body) VALUES(?,?)", array($template_name, $body));
}
header("Location:index.php?module=EMAILMaker&view=ProductBlocks");
}
public function DeleteProductBlock(Vtiger_Request $request)
{
EMAILMaker_Debugger_Model::GetInstance()->Init();
$adb = PearDatabase::getInstance();
$tplid = $request->get('tplid');
$adb->pquery("DELETE FROM vtiger_emakertemplates_productbloc_tpl WHERE id = ?", array($tplid));
header("Location:index.php?module=EMAILMaker&view=ProductBlocks");
}
public function deleteProductBlocks(Vtiger_Request $request)
{
EMAILMaker_Debugger_Model::GetInstance()->Init();
$adb = PearDatabase::getInstance();
$sql = "DELETE FROM vtiger_emakertemplates_productbloc_tpl WHERE id IN (";
$params = array();
foreach ($_REQUEST as $key => $val) {
if (substr($key, 0, 4) == "chx_" && $val == "on") {
list($dump, $id) = explode("_", $key, 2);
if (is_numeric($id)) {
$sql .= "?,";
array_push($params, $id);
}
}
}
if (count($params) > 0) {
$sql = rtrim($sql, ",") . ")";
$adb->pquery($sql, $params);
}
header("Location:index.php?module=EMAILMaker&view=ProductBlocks");
}
public function DeleteTheme(Vtiger_Request $request)
{
EMAILMaker_Debugger_Model::GetInstance()->Init();
$adb = PearDatabase::getInstance();
$themeid = $request->get('themeid');
$return_module = $request->get('return_module');
$return_view = $request->get('return_view');
$adb->pquery("UPDATE vtiger_emakertemplates SET deleted=1 WHERE templateid=?", array($themeid));
header("Location:index.php?module=EMAILMaker&view=Edit&mode=selectTheme&return_module=" . $return_module . "&return_view=" . $return_view);
}
public function DeleteTemplate(Vtiger_Request $request)
{
EMAILMaker_Debugger_Model::GetInstance()->Init();
$EMAILMakerModel = Vtiger_Module_Model::getInstance('EMAILMaker');
if ($EMAILMakerModel->CheckPermissions("DELETE") == false) {
throw new Exception(vtranslate("LBL_PERMISSION", "EMAILMaker"));
}
$adb = PearDatabase::getInstance();
if ($request->has('templateid') && !$request->isEmpty('templateid')) {
$templateid = $request->get('templateid');
$checkRes = $adb->pquery("select module from vtiger_emakertemplates where templateid=?", array($templateid));
$checkRow = $adb->fetchByAssoc($checkRes);
$EMAILMakerModel->CheckTemplatePermissions($checkRow["module"], $templateid);
$adb->pquery("delete from vtiger_emakertemplates where templateid=?", array($templateid));
} else {
$idlist = $request->get('idlist');
$id_array = explode(';', $idlist);
$checkRes = $adb->pquery("select templateid, module from vtiger_emakertemplates where templateid IN (" . generateQuestionMarks($id_array) . ")", $id_array);
$checkArr = array();
while ($checkRow = $adb->fetchByAssoc($checkRes)) {
$checkArr[$checkRow["templateid"]] = $checkRow["module"];
}
for ($i = 0; $i < count($id_array) - 1; $i++) {
$EMAILMakerModel->CheckTemplatePermissions($checkArr[$id_array[$i]], $id_array[$i]);
$sql = "delete from vtiger_emakertemplates where templateid=?";
$adb->pquery($sql, array($id_array[$i]));
}
}
$ajaxDelete = $request->get('ajaxDelete');
$listViewUrl = "index.php?module=EMAILMaker&view=List";
if ($ajaxDelete) {
$response = new Vtiger_Response();
$response->setResult($listViewUrl);
return $response;
} else {
header("Location: $listViewUrl");
}
}
public function updateLinkForModule(Vtiger_Request $request)
{
EMAILMaker_Debugger_Model::GetInstance()->Init();
$for_module = $request->get('forModule');
$link_type = $request->get('linkType');
$update_type = $request->get('updateType');
$link_module = Vtiger_Module::getInstance($for_module);
if ($update_type == "true") {
$useFunction = "addLink";
} else {
$useFunction = "deleteLink";
}
if ($link_type == "1") {
$link_module->$useFunction('DETAILVIEWSIDEBARWIDGET', 'EMAILMaker', 'module=EMAILMaker&view=GetEMAILActions&record=$RECORD$');
} elseif ($link_type == "2") {
$link_module->$useFunction('LISTVIEWMASSACTION', 'Send Emails with EMAILMaker', 'javascript:EMAILMaker_Actions_Js.getListViewPopup(this,\'$MODULE$\');');
}
$result = array('success' => true);
$response = new Vtiger_Response();
$response->setResult($result);
$response->emit();
}
public function controlEmails(Vtiger_Request $request)
{
$records = array();
$EMAILMaker = new EMAILMaker_EMAILMaker_Model();
$adb = PearDatabase::getInstance();
$currentUserModel = Users_Record_Model::getCurrentUserModel();
$esentid = $request->get('esentid');
if ($esentid != "") {
$Record = $EMAILMaker->getEmailsInfo($esentid);
} else {
$sql = "SELECT DISTINCT tb1.esentid FROM vtiger_emakertemplates_sent AS tb1 INNER JOIN vtiger_emakertemplates_emails AS tb2 ON tb1.esentid = tb2.esentid WHERE tb2.deleted= '0' AND tb2.status = '0' AND tb1.userid = ? AND (tb1.drip_group = '0' OR tb1.drip_group IS NULL) AND tb1.drip_delay <= 0 AND tb1.type = 1 LIMIT 0,1";
$result = $adb->pquery($sql, array($currentUserModel->id));
$num_rows = $adb->num_rows($result);
if ($num_rows > 0) {
while ($row = $adb->fetchByAssoc($result)) {
$Record = $EMAILMaker->getEmailsInfo($row['esentid']);
}
}
}
$response = new Vtiger_Response();
$response->setResult($Record);
$response->emit();
}
public function sendEmail(Vtiger_Request $request)
{
$records = array();
$rootDirectory = vglobal('root_directory');
$adb = PearDatabase::getInstance();
if ($request->has('debug') && !$request->isEmpty('debug')) {
if ($request->get('debug') == 'true') {
error_reporting(63);
ini_set("display_errors", 1);
$adb->setDebug(true);
$debug = true;
}
}
$EMAILMaker = new EMAILMaker_EMAILMaker_Model();
$esentid = $request->get('esentid');
$EMAILMaker->sendEmails($esentid);
$Emails_Info = $EMAILMaker->getEmailsInfo($esentid);
$response_result = array("emails_info" => $Emails_Info);
$response = new Vtiger_Response();
$response->setResult($response_result);
$response->emit();
}
public function getRelatedDocuments($crmid)
{
$adb = PearDatabase::getInstance();
$documentRes = $adb->pquery("SELECT * FROM vtiger_senotesrel
INNER JOIN vtiger_crmentity ON vtiger_senotesrel.notesid = vtiger_crmentity.crmid AND vtiger_senotesrel.crmid = ?
INNER JOIN vtiger_notes ON vtiger_notes.notesid = vtiger_senotesrel.notesid
INNER JOIN vtiger_seattachmentsrel ON vtiger_seattachmentsrel.crmid = vtiger_notes.notesid
INNER JOIN vtiger_attachments ON vtiger_attachments.attachmentsid = vtiger_seattachmentsrel.attachmentsid
WHERE vtiger_crmentity.deleted = 0", array($crmid));
$numOfRows = $adb->num_rows($documentRes);
if ($numOfRows) {
for ($i = 0; $i < $numOfRows; $i++) {
$row = $adb->query_result_rowdata($documentRes, $i);
if (!isset($row['storedname']) || empty($row['storedname'])) {
$row['storedname'] = $row['name'];
}
$documentsList[$i]['name'] = $row['filename'];
$filesize = $row['filesize'];
$documentsList[$i]['size'] = $this->getFormattedFileSize($filesize);
$documentsList[$i]['docid'] = $row['notesid'];
$documentsList[$i]['path'] = $row['path'];
$documentsList[$i]['fileid'] = $row['attachmentsid'];
$documentsList[$i]['attachment'] = $row['storedname'];
$documentsList[$i]['type'] = $row['type'];
}
}
return $documentsList;
}
public function getFormattedFileSize($filesize)
{
if ($filesize < 1024) {
$filesize = sprintf("%0.2f", round($filesize, 2)) . 'B';
} else {
if ($filesize > 1024 && $filesize < 1048576) {
$filesize = sprintf("%0.2f", round($filesize / 1024, 2)) . 'KB';
} else {
if ($filesize > 1048576) {
$filesize = sprintf("%0.2f", round($filesize / (1024 * 1024), 2)) . 'MB';
}
}
}
return $filesize;
}
public function getDocuments(Vtiger_Request $request)
{
$result = array();
$EMAILMaker = new EMAILMaker_EMAILMaker_Model();
$templateid = $request->get('templateid');
if ($templateid != "" && $templateid != "0") {
$Documents_Records = $EMAILMaker->getEmailTemplateDocuments($templateid);
if (count($Documents_Records) > 0) {
foreach ($Documents_Records as $DD) {
$result[$DD["id"]] = array("filename" => $DD["name"], "filesize" => $DD["filesize"]);
}
}
}
$response = new Vtiger_Response();
$response->setResult($result);
$response->emit();
}
public function getFiltersForModule(Vtiger_Request $request)
{
$source_module = $request->get("source_module");
$module_filters = EMAILMaker_RecordME_Model::getModuleFilters($source_module);
$module_columns = EMAILMaker_RecordME_Model::getModuleColumns($source_module);
echo '
' . vtranslate('LBL_FILTER', 'EMAILMaker') . '
' . $module_filters . '
' . vtranslate('LBL_COLUMN', 'EMAILMaker') . '
' . $module_columns . '
';
}
public function getEmailTemplatesForModule(Vtiger_Request $request)
{
$source_module = $request->get("source_module");
$stemplateid = $request->get("templateid");
$orderby = "templateid";
$dir = "asc";
$c = "";
$EMAILMaker = new EMAILMaker_EMAILMaker_Model();
$return_data = $EMAILMaker->GetListviewData($orderby, $dir, $source_module, false, $request);
$select_lbl = vtranslate("LBL_SELECT", "EMAILMaker");
$preview_lbl = vtranslate("LBL_PREVIEW", "EMAILMaker");
foreach ($return_data as $edata) {
$templateid = $edata["templateid"];
if ($templateid == $stemplateid) {
$class = "blockHeader";
} else {
$class = "tableHeading";
}
$c .= '
';
$class = "tableHeading";
}
$c .= "
";
echo $c;
}
public function getEmailTemplatePreview(Vtiger_Request $request)
{
$templateid = $request->get("templateid");
$EMAILMaker = new EMAILMaker_EMAILMaker_Model();
$emailtemplateResult = $EMAILMaker->GetDetailViewData($templateid);
echo decode_html($emailtemplateResult["body"]);
}
public function DeleteME(Vtiger_Request $request)
{
$moduleName = $request->getModule();
$recordId = $request->get('record');
$ajaxDelete = $request->get('ajaxDelete');
$recordModel = EMAILMaker_RecordME_Model::getInstance($recordId, $moduleName);
$recordModel->delete();
if ($ajaxDelete) {
$result = "index.php?module=EMAILMaker&view=ListME";
} else {
$result = array('module' => $moduleName);
}
$response = new Vtiger_Response();
$response->setResult($result);
$response->emit();
}
public function installExtension(Vtiger_Request $request)
{
$extname = $request->get("extname");
if ($extname == "Workflow") {
$Errors = array();
include_once('modules/EMAILMaker/EMAILMaker.php');
$EMAILMaker = new EMAILMaker();
$EMAILMakerModel = new EMAILMaker_EMAILMaker_Model();
$Workflows = $EMAILMakerModel->GetWorkflowsList();
foreach ($Workflows as $name) {
$folder_dest1 = "modules/com_vtiger_workflow/tasks/";
$dest1 = $folder_dest1 . $name . ".inc";
$source1 = "modules/EMAILMaker/workflow/" . $name . ".inc";
if (!file_exists($dest1)) {
if (!copy($source1, $dest1)) {
$Errors[] = vtranslate("LBL_PERMISSION_ERROR_PART_1", "EMAILMaker") . ' "' . $source1 . '" ' . vtranslate("LBL_PERMISSION_ERROR_PART_2", "EMAILMaker") . ' "' . $folder_dest1 . '" ' . vtranslate("LBL_PERMISSION_ERROR_PART_3", "EMAILMaker") . '.';
}
}
$folder_dest2 = "layouts/v7/modules/Settings/Workflows/Tasks/";
$dest2 = $folder_dest2 . $name . ".tpl";
$source2 = "layouts/v7/modules/EMAILMaker/taskforms/" . $name . ".tpl";
if (!file_exists($dest2)) {
if (!copy($source2, $dest2)) {
$Errors[] = vtranslate("LBL_PERMISSION_ERROR_PART_1", "EMAILMaker") . ' "' . $source2 . '" ' . vtranslate("LBL_PERMISSION_ERROR_PART_2", "PDFMaker") . ' "' . $folder_dest2 . '" ' . vtranslate("LBL_PERMISSION_ERROR_PART_3", "PDFMaker") . '.';
}
}
}
if (count($Errors) > 0) {
$error = '';
$error .= '';
$error .= '
';
$error .= implode("
", $Errors);
$error .= "
" . vtranslate("LBL_CHANGE_PERMISSION", "EMAILMaker");
$error .= '
';
$error .= '
';
} else {
$EMAILMaker->installWorkflows();
$control = $EMAILMakerModel->controlWorkflows();
if (!$control) {
$error = vtranslate("LBL_INSTALLATION_FAILED", "EMAILMaker");
}
}
if ($error == "") {
$result = array('success' => true, 'message' => vtranslate("LBL_WORKFLOWS_ARE_ALREADY_INSTALLED", "EMAILMaker"));
} else {
$result = array('success' => false, 'message' => vtranslate($error, 'EMAILMaker'));
}
} else {
$result = array('success' => false);
}
$response = new Vtiger_Response();
$response->setResult($result);
$response->emit();
}
public function stopSendingEmails(Vtiger_Request $request)
{
$adb = PearDatabase::getInstance();
$esentid = $request->get('esentid');
if ($esentid != "") {
$adb->pquery("UPDATE vtiger_emakertemplates_emails SET deleted = '1' WHERE esentid = ? AND status = '0'", array($esentid));
$success = true;
} else {
$success = false;
}
$response = new Vtiger_Response();
$response->setResult(array('success' => $success));
$response->emit();
}
public function SaveEMAILImages(Vtiger_Request $request)
{
$moduleName = $request->getModule();
$crmid = $request->get('record');
$adb = PearDatabase::getInstance();
$adb->pquery("DELETE FROM vtiger_emakertemplates_images WHERE crmid=?", array($crmid));
$R_Data = $request->getAll();
foreach ($R_Data as $key => $value) {
if (strpos($key, "img_") !== false) {
list($bin, $productid, $sequence) = explode("_", $key);
if ($value != "no_image") {
$width = $R_Data["width_" . $productid . "_" . $sequence];
$height = $R_Data["height_" . $productid . "_" . $sequence];
if (!is_numeric($width) || $width > 999) {
$width = 0;
}
if (!is_numeric($height) || $height > 999) {
$height = 0;
}
} else {
$height = $width = $value = 0;
}
$adb->pquery("INSERT INTO vtiger_emakertemplates_images (crmid, productid, sequence, attachmentid, width, height) VALUES (?, ?, ?, ?, ?, ?)", array($crmid, $productid, $sequence, $value, $width, $height));
}
}
}
public function SaveProfilesPrivilegies(Vtiger_Request $request)
{
$EMAILMakerModel = Vtiger_Module_Model::getInstance('EMAILMaker');
$adb = PearDatabase::getInstance();
$permissions = $EMAILMakerModel->GetProfilesPermissions();
foreach ($permissions as $profileid => $subArr) {
foreach ($subArr as $actionid => $perm) {
$adb->pquery("DELETE FROM vtiger_emakertemplates_profilespermissions WHERE profileid = ? AND operation = ?", array($profileid, $actionid));
$priv_chk = $request->get("priv_chk_" . $profileid . "_" . $actionid);
if ($priv_chk == "on") {
$p_val = "0";
} else {
$p_val = "1";
}
$adb->pquery("INSERT INTO vtiger_emakertemplates_profilespermissions (profileid, operation, permissions) VALUES(?, ?, ?)", array($profileid, $actionid, $p_val));
}
}
header("Location:index.php?module=EMAILMaker&view=ProfilesPrivilegies");
}
public function ChangeActiveOrDefault(Vtiger_Request $request)
{
$current_user = Users_Record_Model::getCurrentUserModel();
$adb = PearDatabase::getInstance();
$templateid = $request->get("templateid");
$subject = $request->get("subjectChanged");
$result = $adb->pquery("SELECT is_listview FROM vtiger_emakertemplates WHERE templateid=?", array($templateid));
if ($adb->query_result($result, 0, "is_listview") == "1") {
$set_default_val = "2";
} else {
$set_default_val = "3";
}
$result = $adb->pquery("SELECT * FROM vtiger_emakertemplates_userstatus WHERE templateid=? AND userid=?", array($templateid, $current_user->id));
if ($adb->num_rows($result) > 0) {
if ($subject == "active") {
$sql = "UPDATE vtiger_emakertemplates_userstatus SET is_active=IF(is_active=0,1,0), is_default=IF(is_active=0,0,is_default) WHERE templateid=? AND userid=?";
} elseif ($subject == "default") {
$sql = "UPDATE vtiger_emakertemplates_userstatus SET is_default=IF(is_default > 0,0," . $set_default_val . ") WHERE templateid=? AND userid=?";
}
} else {
if ($subject == "active") {
$sql = "INSERT INTO vtiger_emakertemplates_userstatus(templateid,userid,is_active,is_default) VALUES(?,?,0,0)";
} elseif ($subject == "default") {
$sql = "INSERT INTO vtiger_emakertemplates_userstatus(templateid,userid,is_active,is_default) VALUES(?,?,1," . $set_default_val . ")";
}
}
$adb->pquery($sql, array($templateid, $current_user->id));
$sql = "SELECT is_default, module
FROM vtiger_emakertemplates_userstatus
INNER JOIN vtiger_emakertemplates USING(templateid)
WHERE templateid=? AND userid=?";
$result = $adb->pquery($sql, array($templateid, $current_user->id));
$new_is_default = $adb->query_result($result, 0, "is_default");
$module = $adb->query_result($result, 0, "module");
if ($new_is_default == $set_default_val) {
$sql5 = "UPDATE vtiger_emakertemplates_userstatus
INNER JOIN vtiger_emakertemplates USING(templateid)
SET is_default=0
WHERE is_default > 0
AND userid=?
AND module=?
AND templateid!=?";
$adb->pquery($sql5, array($current_user->id, $module, $templateid));
}
$response = new Vtiger_Response();
$response->setResult(array('success' => true));
$response->emit();
}
public function SearchEmails(Vtiger_Request $request)
{
$moduleName = $request->get('module');
$moduleModel = Vtiger_Module_Model::getInstance($moduleName);
$searchValue = $request->get('searchValue');
$emailsResult = array();
if ($searchValue) {
$emailsResult = $moduleModel->searchEmails($request->get('searchValue'));
}
$response = new Vtiger_Response();
$response->setResult($emailsResult);
$response->emit();
}
public function getModuleFields(Vtiger_Request $request)
{
$current_user = Users_Record_Model::getCurrentUserModel();
$this->cu_language = $current_user->get('language');
$module = $request->get("formodule");
$forfieldname = $request->get("forfieldname");
$SelectModuleFields = array();
$RelatedModules = array();
if ($module != "") {
$EMAILMakerFieldsModel = new EMAILMaker_Fields_Model();
$SelectModuleFields = $EMAILMakerFieldsModel->getSelectModuleFields($module, $forfieldname);
$RelatedModules = $EMAILMakerFieldsModel->getRelatedModules($module);
}
$EMAILMaker = new EMAILMaker_EMAILMaker_Model();
$subject_fields = $EMAILMaker->getSubjectFields();
$response = new Vtiger_Response();
$response->setResult(array('success' => true, 'fields' => $SelectModuleFields, 'related_modules' => $RelatedModules, 'subject_fields' => array(vtranslate('LBL_COMMON_EMAILINFO', 'EMAILMaker') => $subject_fields)));
$response->emit();
}
public function sendExampleMEmail(Vtiger_Request $request)
{
global $root_directory;
$moduleName = $request->getModule();
$data = $request->get("datap");
$emailadd = $data["toemail"];
$datame = $request->get("datame");
$from_address = $datame["from_email"];
$from_name = $datame["from_name"];
$subject = $datame["subject"];
$templateid = $datame["emailtemplateid"];
$language = $datame["language"];
$formodule = $datame["for_module"];
$mailer = Emails_Mailer_Model::getInstance();
$mailer->IsHTML(true);
$mailer->reinitialize();
$adb = PearDatabase::getInstance();
$result0 = $adb->pquery("select from_email_field from vtiger_systems where server_type=?", array('email'));
$from_email_field = $adb->query_result($result0, 0, 'from_email_field');
$replyToEmail = $from_address;
if (isset($from_email_field) && $from_email_field != '') {
$from_address = $from_email_field;
}
$mailer->ConfigSenderInfo($from_address, $from_name, $replyToEmail);
$EMAILContentModel = EMAILMaker_EMAILContent_Model::getInstanceById($templateid, $language, $formodule, "0");
$EMAILContentModel->setSubject($subject);
$EMAILContentModel->getContent(false, false, true);
$subject = $EMAILContentModel->getSubject();
$body = $EMAILContentModel->getBody();
$mailer->Body = $body;
$mailer->Subject = $subject;
$mailer->AddAddress($emailadd);
$sql10 = "SELECT vtiger_attachments.* FROM vtiger_notes
INNER JOIN vtiger_crmentity
ON vtiger_crmentity.crmid = vtiger_notes.notesid
INNER JOIN vtiger_seattachmentsrel
ON vtiger_seattachmentsrel.crmid = vtiger_notes.notesid
INNER JOIN vtiger_attachments
ON vtiger_attachments.attachmentsid = vtiger_seattachmentsrel.attachmentsid
INNER JOIN vtiger_emakertemplates_documents
ON vtiger_emakertemplates_documents.documentid = vtiger_notes.notesid
WHERE vtiger_crmentity.deleted = '0' AND vtiger_emakertemplates_documents.templateid = ?";
$result10 = $adb->pquery($sql10, array($templateid));
$num_rows10 = $adb->num_rows($result10);
if ($num_rows10 > 0) {
for ($i = 0; $i < $num_rows10; $i++) {
$row = $adb->query_result_rowdata($result10, $i);
if (!isset($row['storedname']) || empty($row['storedname'])) {
$row['storedname'] = $row['name'];
}
$fileid = $row['attachmentsid'];
$file = decode_html($row['storedname']);
$filename = decode_html($row['name']);
$filepath = $row['path'];
$filewithpath = $root_directory . $filepath . $fileid . "_" . $file;
if (is_file($filewithpath)) {
$mailer->AddAttachment($filewithpath, $filename);
}
}
}
$Email_Images = $EMAILContentModel->getEmailImages();
if (count($Email_Images) > 0) {
foreach ($Email_Images as $cid => $cdata) {
$mailer->AddEmbeddedImage($cdata["path"], $cid, $cdata["name"]);
}
}
$status = $mailer->Send(true);
$success = true;
"";
if (!$status) {
$mail_status = $mailer->getError();
$success = false;
} else {
$mail_status = vtranslate("LBL_EMAIL_HAS_BEEN_SENT", $moduleName);
}
$response = new Vtiger_Response();
$response->setResult(array('success' => $success, 'status' => $mail_status));
$response->emit();
}
public function GetRelatedBlockColumns(Vtiger_Request $request)
{
$current_user = Users_Record_Model::getCurrentUserModel();
$RelatedBlock = new EMAILMaker_RelatedBlock_Model();
$sec_module = $request->get('secmodule');
$pri_module = $request->get('primodule');
$mode = $request->get('type');
$module_list = $RelatedBlock->getModuleList($sec_module);
$Fields = array();
/*
if ($type == "stdcriteria") {
$options = $RelatedBlock->getStdCriteriaByModule($sec_module, $module_list, $current_user);
if (count($options) > 0) {
$content = "";
foreach ($options AS $value => $label) {
$content .= "";
$Fields[$value] = $label;
}
}
} else {
*/
foreach ($module_list as $blockid => $optgroup) {
$options = $RelatedBlock->getColumnsListbyBlock($sec_module, $blockid, $pri_module, $current_user);
if (!empty($options) && count($options)) {
foreach ($options as $value => $label) {
$Fields[$optgroup][$value] = $label;
}
}
}
//}
$response = new Vtiger_Response();
$response->setResult(array("fields" => $Fields));
$response->emit();
}
public function SaveDisplayConditions(Vtiger_Request $request)
{
$templateid = $request->get('record');
$recordModel = EMAILMaker_Record_Model::getInstanceById($templateid);
$conditions = $request->get('conditions');
$displayed_value = $request->get('displayedValue');
$recordModel->updateDisplayConditions($conditions, $displayed_value);
$detailViewurl = $recordModel->getDetailViewUrl();
header("Location:" . $detailViewurl);
}
public function getSendingMsg(Vtiger_Request $request)
{
if ($request->has('esentid') && !$request->isEmpty('esentid')) {
$esentid = $request->has('esentid');
$adb = PearDatabase::getInstance();
$result = $adb->pquery("SELECT total_emails FROM vtiger_emakertemplates_sent WHERE esentid = ?", array($esentid));
$total_emails = $adb->query_result($result, 0, "total_emails");
$result2 = $adb->pquery("SELECT count(emailid) as total FROM vtiger_emakertemplates_emails WHERE status = '1' AND esentid = ?", array($esentid));
$sent_emails = $adb->query_result($result2, 0, "total");
if ($sent_emails == $total_emails) {
if ($total_emails > 1) {
$title = "LBL_EMAILS_HAS_BEEN_SENT";
} else {
$title = "LBL_EMAIL_HAS_BEEN_SENT";
}
} else {
$title = "LBL_EMAILS_DISTRIBUTION";
}
$content = $sent_emails . ' ' . vtranslate("LBL_EMAILS_SENT_FROM", "EMAILMaker") . ' ' . $total_emails;
$response = new Vtiger_Response();
$response->setResult(array('id' => $esentid, 'title' => vtranslate($title, "EMAILMaker"), 'content' => $content));
$response->emit();
}
}
public function getUserSignature(Vtiger_Request $request)
{
$def_charset = vglobal('default_charset');
$currentUserModel = Users_Record_Model::getCurrentUserModel();
$signature = html_entity_decode($currentUserModel->get('signature'), ENT_QUOTES, $def_charset);
$response = new Vtiger_Response();
$response->setResult(array('success' => true, 'signature' => $signature));
$response->emit();
}
}