From 3f12411e3ad68dbc82a6e65116b307e3a8c9f368 Mon Sep 17 00:00:00 2001 From: Douglas Medrano Chura Date: Mon, 15 Aug 2011 17:21:18 -0400 Subject: [PATCH] BUG 7048 Solved question mark in email while using Russian Language The problem was resolved sending characteres in url with base64 --- workflow/engine/classes/class.spool.php | 17 ++++---- .../methods/processes/processes_Ajax.php | 42 +++++++++---------- .../processes/processes_FilesOptions.xml | 25 +++++------ 3 files changed, 39 insertions(+), 45 deletions(-) diff --git a/workflow/engine/classes/class.spool.php b/workflow/engine/classes/class.spool.php index ecec25c3d..bd805b775 100755 --- a/workflow/engine/classes/class.spool.php +++ b/workflow/engine/classes/class.spool.php @@ -376,21 +376,20 @@ class spoolRun { $oPHPMailer->From = $this->fileData['from_email']; $oPHPMailer->FromName = utf8_decode($this->fileData['from_name']); $msSubject = $this->fileData['subject']; - if(!(mb_detect_encoding($msSubject, "UTF-8") == "UTF-8")) { - $msSubject = utf8_encode($msSubject); - } + if(!(mb_detect_encoding($msSubject, "UTF-8") == "UTF-8")) { + $msSubject = utf8_encode($msSubject); + } $oPHPMailer->Subject = $msSubject; $msBody = $this->fileData['body']; - if(!(mb_detect_encoding($msBody, "UTF-8") == "UTF-8")) { - $msBody = utf8_encode($msBody); - } + if(!(mb_detect_encoding($msBody, "UTF-8") == "UTF-8")) { + $msBody = utf8_encode($msBody); + } $oPHPMailer->Body = $msBody; if($this->fileData['attachments']) - $oPHPMailer->AddAttachment($this->fileData['attachments']); + $oPHPMailer->AddAttachment($this->fileData['attachments']); foreach( $this->fileData['envelope_to'] as $sEmail ) { - $evalMail = strpos($sEmail, '<'); - + $evalMail = strpos($sEmail, '<'); if( strpos($sEmail, '<') !== false ) { preg_match($this->longMailEreg, $sEmail, $matches); $sTo = trim($matches[3]); diff --git a/workflow/engine/methods/processes/processes_Ajax.php b/workflow/engine/methods/processes/processes_Ajax.php index 00bbf5ceb..85f07933f 100644 --- a/workflow/engine/methods/processes/processes_Ajax.php +++ b/workflow/engine/methods/processes/processes_Ajax.php @@ -456,44 +456,44 @@ try { break; case 'saveFile': global $G_PUBLISH; - $G_PUBLISH = new Publisher(); + $G_PUBLISH = new Publisher(); $sDir = ""; if(isset($_REQUEST['MAIN_DIRECTORY'])) $sDir = $_REQUEST['MAIN_DIRECTORY']; + switch($sDir){ case 'mailTemplates' : $sDirectory = PATH_DATA_MAILTEMPLATES . $_REQUEST['pro_uid'] . PATH_SEP . $_REQUEST['filename']; - break; + break; case 'public' : $sDirectory = PATH_DATA_PUBLIC . $_REQUEST['pro_uid'] . PATH_SEP . $_REQUEST['filename']; - break; + break; default : $sDirectory = PATH_DATA_MAILTEMPLATES . $_REQUEST['pro_uid'] . PATH_SEP . $_REQUEST['filename']; - break; + break; } - header("Content-Type: text/html; charset=utf-8"); + $fp = fopen($sDirectory, 'w'); - $content = stripslashes($_REQUEST['fcontent']); - $content = str_replace("@amp@", "&", $content); + $content = stripslashes($_REQUEST['fcontent']); + $content = str_replace("@amp@", "&", $content); $content = base64_decode($content); - - fwrite($fp, $content); - fclose($fp); - echo 'saved: '. $sDirectory; + fwrite($fp, $content); + fclose($fp); + echo 'saved: '. $sDirectory; break; case 'events': $oProcessMap->eventsList($oData->pro_uid, $oData->type); break; /* case 'saveFile': - global $G_PUBLISH; - $G_PUBLISH = new Publisher(); - $sDirectory = PATH_DATA_MAILTEMPLATES . $_REQUEST['pro_uid'] . PATH_SEP . $_REQUEST['filename']; + global $G_PUBLISH; + $G_PUBLISH = new Publisher(); + $sDirectory = PATH_DATA_MAILTEMPLATES . $_REQUEST['pro_uid'] . PATH_SEP . $_REQUEST['filename']; - $fp = fopen($sDirectory, 'w'); - $content = stripslashes($_REQUEST['fcontent']); - $content = str_replace("@amp@", "&", $content); - fwrite($fp, $content); - fclose($fp); - echo 'saved: '. $sDirectory; - break; + $fp = fopen($sDirectory, 'w'); + $content = stripslashes($_REQUEST['fcontent']); + $content = str_replace("@amp@", "&", $content); + fwrite($fp, $content); + fclose($fp); + echo 'saved: '. $sDirectory; + break; */ case 'emptyFileOptions': global $G_PUBLISH; diff --git a/workflow/engine/xmlform/processes/processes_FilesOptions.xml b/workflow/engine/xmlform/processes/processes_FilesOptions.xml index 46ce674a0..2603427a0 100644 --- a/workflow/engine/xmlform/processes/processes_FilesOptions.xml +++ b/workflow/engine/xmlform/processes/processes_FilesOptions.xml @@ -97,22 +97,17 @@ if( typofile[typofile.length-1].toLowerCase() != 'txt' && typofile[typofile.leng function saveFile(pro_uid, fileName){ var fc64 = base64_encode(getField('fcontent').value); - fc64 = fc64.replace(/&/g, "@amp@"); - fc64 = fc64.replace(/\+/g, '%2B'); - - fc = getField('fcontent').value; - fc = escape(fc); - fc = fc.replace(/&/g, "@amp@"); - fc = fc.replace(/\+/g, '%2B'); + fc64 = fc64.replace(/&/g, "@amp@"); + fc64 = fc64.replace(/\+/g, '%2B'); var oRPC = new leimnud.module.rpc.xmlhttp({ - url : 'processes_Ajax', - args: 'action=saveFile&filename='+fileName+'&pro_uid='+pro_uid+'&MAIN_DIRECTORY='+CURRENT_MAIN_DIRECTORY+'&fcontent='+fc64 - }); - oPanel.loader.show(); - oRPC.callback = function(rpc) { - oPanel.remove(); - }.extend(this); - oRPC.make(); + url : 'processes_Ajax', + args: 'action=saveFile&filename='+fileName+'&pro_uid='+pro_uid+'&MAIN_DIRECTORY='+CURRENT_MAIN_DIRECTORY+'&fcontent='+fc64 + }); + oPanel.loader.show(); + oRPC.callback = function(rpc) { + oPanel.remove(); + }.extend(this); + oRPC.make(); } var showCreateEmptyOptionsPanel;