Exemplo n.º 1
0
 /**
  * ฟังก์ชั่นส่งเมล์จากแม่แบบจดหมาย
  *
  * @param int $id ID ของจดหมายที่ต้องการส่ง
  * @param string $module ชื่อโมดูลของจดหมายที่ต้องการส่ง
  * @param array $datas ข้อมูลที่จะถูกแทนที่ลงในจดหมาย ในรูป 'ตัวแปร'=>'ข้อความ'
  * @param string $to ที่อยู่อีเมล์ผู้รับ  คั่นแต่ละรายชื่อด้วย ,
  * @return string สำเร็จคืนค่าว่าง ไม่สำเร็จ คืนค่าข้อความผิดพลาด
  */
 public static function send($id, $module, $datas, $to)
 {
     $model = new static();
     $sql = "SELECT `from_email`,`copy_to`,`subject`,`detail` FROM `" . $model->tableWithPrefix('emailtemplate') . "`";
     $sql .= " WHERE `module`=:module AND `email_id`=:email_id AND `language` IN (:language,'th')";
     $sql .= " LIMIT 1";
     $where = array(':module' => $module, ':email_id' => (int) $id, ':language' => \Language::name());
     $email = $model->db->customQuery($sql, true, $where, $model->cache);
     if (empty($email)) {
         return \Language::get('email template not found');
     } else {
         $email = $email[0];
         // ผู้ส่ง
         $from = empty($email['from_email']) ? self::$cfg->noreply_email : $email['from_email'];
         // ข้อความในอีเมล์
         $replace = array('/%WEBTITLE%/' => strip_tags(self::$cfg->web_title), '/%WEBURL%/' => WEB_URL, '/%ADMINEMAIL%/' => $from, '/%TIME%/' => \Date::format());
         $replace = \Arraytool::replace($replace, $datas);
         \Arraytool::extract($replace, $keys, $values);
         $msg = preg_replace($keys, $values, $email['detail']);
         $subject = preg_replace($keys, $values, $email['subject']);
         $to = explode(',', $to);
         if (!empty($email['copy_to'])) {
             $to[] = $email['copy_to'];
         }
         // ส่งอีเมล์
         return self::custom(implode(',', $to), $from, $subject, $msg);
     }
 }
Exemplo n.º 2
0
 /**
  * แทนที่ข้อความด้วยข้อมูลจากแอเรย์ รองรับข้อมูลรูปแบบแอเรย์ย่อยๆ
  *
  * @param string $text
  * @param array $array array($key1 => $value1, $key2 => $value2, array($key3 => $value3, $key4 => $value4))
  * @return string
  */
 public static function replaceAll($text, $array)
 {
     if (!empty($array)) {
         $keys = array();
         $values = array();
         \Arraytool::extract($array, $keys, $values);
         $text = str_replace($keys, $values, $text);
     }
     return $text;
 }