/**
     * Sends messages from queue
     * @param $count
     * @return void
     */
    function send_messages_from_queue($count)
    {
        global $setting;
        $count = intval($count) ? intval($count) : 10;
        $campaigns = array();
        $senders = array();

        $messages = he_database::fetch_array("SELECT * FROM se_he_mass_mailing_queue ORDER BY id LIMIT $count");
        foreach ($messages as $message)
        {
            if( !$this->delete_message_from_queue($message['id']) ) continue;

            //get campaign
            if( !$campaigns[$message['campaign_id']] )
                $campaigns[$message['campaign_id']] = $this->get_campaign($message['campaign_id']);
            $campaign = $campaigns[$message['campaign_id']];

            //get sender if it is not email and sender is not admin
            if( !$campaign['is_email'] && $campaign['sender'] ) {
                if( !$senders[$campaign['sender']] )
                    $senders[$campaign['sender']] = new se_user(array($campaign['sender'], ''));
                
                $sender = $senders[$campaign['sender']];
                if( !$sender->user_exists ) continue;
            }

            //get recipient
            $recipient = null;
            if( $message['recipient'] ) {
                $recipient = new se_user(array($message['recipient'], ''));
                if( !$recipient->user_exists ) continue;
            }
            else {
                if( !$message['email'] ) continue;
            }

            //set subject and message
            $subject = $message['replace'] ? vsprintf($campaign['subject'], unserialize($message['replace'])) : $campaign['subject'];
            $body = $message['replace'] ? vsprintf($campaign['message'], unserialize($message['replace'])) : $campaign['message'];

            //send email/message
            if( $campaign['is_email'] )
            {
                $mail = new PHPMailer();

                $mail->From = $setting['setting_email_fromemail'];
                $mail->FromName = $setting['setting_email_fromname'];
                $mail->Subject = $subject;
                $mail->AltBody = $body;//'To view the message, please use an HTML compatible email viewer.';
                $mail->MsgHTML($body);
                if( $recipient )
                    $mail->AddAddress($recipient->user_info['user_email'], $recipient->user_displayname);
                else
                    $mail->AddAddress($message['email'], $message['full_name']);

                $mail->Send();
            }
            else {
                if( !$recipient->user_exists || !$sender->user_exists ) continue;
                $sender->user_message_send($recipient->user_info['user_username'], $subject, $body);
            }
        }
    }
Пример #2
0
 function find_cats()
 {
     $query = "SELECT * FROM `se_he_quiz_cat` WHERE 1";
     return he_database::fetch_array($query);
 }
Пример #3
0
 function get_paging_comments($action_id, $start = 0, $limit = 0)
 {
     $query = he_database::placeholder("SELECT `c`.*, `u`.`user_username`, `u`.`user_fname`, `u`.`user_lname`, `u`.`user_photo`\r\n            FROM `se_he_wall_comment` AS `c` \r\n            INNER JOIN `se_users` AS `u` ON (`c`.`author_id`=`u`.`user_id`)\r\n            WHERE `c`.`action_id`=?\r\n            ORDER BY `c`.`id`", $action_id);
     if ($start < 0) {
         $start = 0;
     }
     if ($start != 0 && $limit != 0) {
         $query .= " LIMIT {$start}, {$limit}";
     } elseif ($start == 0 && $limit != 0) {
         $query .= " LIMIT {$limit}";
     }
     $count = he_database::num_rows(he_database::query($query));
     $temp = he_database::fetch_array($query);
     foreach ($temp as $key => $t) {
         $temp[$key]['author'] = new se_user(array($t['author_id']));
     }
     $action_comments[$action_id] = $temp;
     return array('count' => $count, 'action_comments' => $action_comments, 'sql' => $query);
 }
Пример #4
0
 function get_user_uploads()
 {
     $query = he_database::placeholder("SELECT * FROM `se_he_uploads`\r\n           WHERE `uploads_user_id`=? AND `uploads_instance_type`='?'", $this->user_id, $this->instance_type);
     return he_database::fetch_array($query);
 }