* @since Version 1.0 */ class cMailModule { public $db; /** * Class constructor */ public function __construct() { $this->db = cDb::getInstance(DB_HOST, DB_USR, DB_PWD, DB_PORT, DB_NAME); } /** * Function to get mail templateby template type & language * * @category CMS mailClassModule * @author Mareks Keišs * @returns bool true or redir to error */ public function getTemplateByType($tpType, $langId){ if($tpType && $langId){ $sSql = " SELECT mm.id as template_id, mmd.mail_title, mmd.mail_data, mmd.mail_lang_id FROM mod_mail_constructor mm LEFT JOIN mod_mail_constructor_data mmd ON mm.id = mmd.mail_id LEFT JOIN mod_classificators mc ON mc.id = mm.mail_type WHERE mc.cl_name = '{$tpType}' AND mm.mail_disabled = '0' AND LENGTH(mmd.mail_data) > 0 ORDER BY mm.id "; $this->db->query($sSql); $fields = $this->db->getFieldBasedArray('mail_lang_id'); if(isset($fields[$langId])){ return $fields[$langId]; }else{ return firstE($fields); } }else{ return false; } } /** * Function to insert outgoing mail into table * * @category CMS mailClassModule * @author Mareks Keišs * @returns bool true or redir to error */ public function insOutgoingMail($mailData){ if(is_array($mailData) && count($mailData)){ return $this->db->_queryInsert('mod_mail_outgoing', $mailData, false, true); }else{ return false; } } /** * Function to insert sent mail into table * * @category CMS mailClassModule * @author Mareks Keišs * @returns bool true or redir to error */ public function insSentMail($mailData){ if(is_array($mailData) && count($mailData)){ unset($mailData['mail_disabled']); return $this->db->_queryInsert('mod_mail_sent', $mailData + array('mail_sent' => time()), false, true); }else{ return false; } } /** * Function to get mail record based on sent params * * @category CMS mailClassModule * @author Mareks Keišs * @returns bool */ public function isMailSent($email, $pattern, $timeFrame){ if($email){ $pattern = ($pattern ? $pattern : ''); $sSql = " SELECT tt.id FROM ( SELECT mm.id FROM mod_mail_outgoing mm WHERE mm.mail_owner = '{$email}' AND mm.mail_marker = '{$pattern}' AND mm.mail_inserted BETWEEN {$timeFrame['from']} AND {$timeFrame['till']} UNION ALL SELECT mm.id FROM mod_mail_sent mm WHERE mm.mail_owner = '{$email}' AND mm.mail_marker = '{$pattern}' AND mm.mail_sent BETWEEN {$timeFrame['from']} AND {$timeFrame['till']} ) tt LIMIT 1 "; $this->db->query($sSql); return $this->db->getOne(); } return false; } }