/** * The secret sauce. * Take a string, extract the fields in [] and replace the fields in [] with * their respective values from the $values array. * @param string with fields to merge in [] * @param array $values array with format $values[field_name] = $value * @return string merged */ static function withArray($thestring, $values) { $fields = MergeString::getField($thestring); if (is_array($fields)) { foreach ($fields as $field) { $thestring = str_replace('[' . $field . ']', $values[$field], $thestring); } } return $thestring; }
function eventTranslateLanguage(EventControler $evtcl) { $src_lang = explode("_", $this->src_lng); $dest_lng = explode("_", $this->dest_lng); $fields_content = MergeString::getField($evtcl->et_content_src); $arr_fields_content = array(); foreach ($fields_content as $fields_cont) { $arr_fields_content[$fields_cont] = "AB" . rand(1, 9999) . "YZ"; } $content = htmlspecialchars($evtcl->et_content_src, ENT_QUOTES); $content = MergeString::withArray($content, $arr_fields_content); $trans_content = parent::translate($content, $src_lang[0], $dest_lng[0]); $trans_content = htmlspecialchars_decode($trans_content); $content = $this->withField($trans_content, $arr_fields_content); $_SESSION["et_content_src"] = $content; }
/** * Merge and send an email message with the content of * an executed sqlQuery . * This one is deprecate, use the sendMergeQuery() instead. * * @param sqlConnect $query executed sqlQuery * @deprecated * @see getField() */ function fusion($query) { $this->numsent = 0; set_time_limit(3600); while ($row = $query->fetchArray()) { $this->numsent++; $fields = MergeString::getField($this->mBody); $fields = MergeString::getField($this->mBodyHtml); $SendBody = $this->mBody; $SendBodyHtml = $this->mBodyHtml; $SendSubject = $this->mSubject; if (is_array($fields)) { foreach ($fields as $field) { $SendBody = eregi_replace("\\[{$field}\\]", $row[$field], $SendBody); $SendBodyHtml = eregi_replace("\\[{$field}\\]", $row[$field], $SendBodyHtml); $SendSubject = eregi_replace("\\[{$field}\\]", $row[$field], $SendSubject); } } $SendBody = ereg_replace("\r", "", $SendBody); $this->setHeader(); if (strlen($SendBodyHtml) > 5) { $this->sendMailHtml($row[$this->cfgEmailField], $SendSubject, $SendBody, $SendBodyHtml, $this->header); } elseif (strlen($this->file) > 0 && strlen($this->filename) > 0) { $this->sendMailJoin($row[$this->cfgEmailField], $SendSubject, $SendBody, $this->file, $this->filename, $this->header); } else { $this->sendMailStandard($row[$this->cfgEmailField], $SendSubject, $SendBody, $this->header); } //if (is_integer($numsent/10)) { echo ".";} //if (is_integer($numsent/100)) {echo $numsent." <br>\n"; } } return $this->numsent; }
function eventTranslateLanguage(EventControler $evtcl) { //$src_lang = explode("_",$evtcl->src_lang); //$dest_lng = explode("_",$evtcl->dest_lang); $src_lang = explode("_", $this->src_lng); $dest_lng = explode("_", $this->dest_lng); $fields_subject = MergeString::getField($evtcl->et_sub_src); $arr_fields_subject = array(); foreach ($fields_subject as $fields_sub) { $arr_fields_subject[$fields_sub] = "AB" . rand(1, 9999) . "YZ"; } $subject = htmlspecialchars($evtcl->et_sub_src, ENT_QUOTES); $subject = MergeString::withArray($subject, $arr_fields_subject); $fields_bodytext = MergeString::getField($evtcl->et_body_text_src); $arr_bodytext = array(); foreach ($fields_bodytext as $fields_body_text) { $arr_bodytext[$fields_body_text] = "AB" . rand(1, 9999) . "YZ"; } $bodytext = htmlspecialchars($evtcl->et_body_text_src, ENT_QUOTES); $bodytext = MergeString::withArray($bodytext, $arr_bodytext); $fields_bodyhtml = MergeString::getField($evtcl->et_body_html_src); $arr_bodyhtml = array(); foreach ($fields_bodyhtml as $fields_body_html) { $arr_bodyhtml[$fields_body_html] = "AB" . rand(1, 9999) . "YZ"; } $bodyhtml = htmlspecialchars($evtcl->et_body_html_src, ENT_QUOTES); $bodyhtml = MergeString::withArray($bodyhtml, $arr_bodyhtml); $trans_subject = parent::translate($subject, $src_lang[0], $dest_lng[0]); $trans_bodytext = parent::translate($bodytext, $src_lang[0], $dest_lng[0]); $trans_bodyhtml = parent::translate($bodyhtml, $src_lang[0], $dest_lng[0]); $trans_subject = htmlspecialchars_decode($trans_subject); $trans_bodytext = htmlspecialchars_decode($trans_bodytext); $trans_bodyhtml = htmlspecialchars_decode($trans_bodyhtml); $subject = $this->withField($trans_subject, $arr_fields_subject); $bodytext = $this->withField($trans_bodytext, $arr_bodytext); $bodyhtml = $this->withField($trans_bodyhtml, $arr_bodyhtml); $_SESSION["et_sub_src"] = $subject; $_SESSION["et_body_text_src"] = $bodytext; $_SESSION["et_body_html_src"] = $bodyhtml; }