Esempio n. 1
0
 /**
  * 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;
 }
Esempio n. 3
0
 /**
  * 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;
 }