Ejemplo n.º 1
0
        unset($past_sends[$key]);
    }
}
$send = module_newsletter::get_send($send_id);
if ($send['status'] == _NEWSLETTER_STATUS_PENDING || $send['status'] == _NEWSLETTER_STATUS_PAUSED) {
    redirect_browser(module_newsletter::link_queue_watch($newsletter_id, $send_id));
}
$start_time = $send['start_time'];
if (!$start_time) {
    $start_time = time();
}
// check if this cache has changed - do a callback again.
// this might slow things down, but meh, best to be sure
// incase someone refreshes or doesn't add new members to the list, we check here.
module_newsletter::update_member_data_for_send($send_id);
$send_members = module_newsletter::get_send_members($send_id);
$recipient_count = mysql_num_rows($send_members);
// what other fields are we pulling in here?
// hunt through the recipient listing and find the extra fields.
$extra_fields = array();
$first_newsletter_member_id = false;
while ($send_member = mysql_fetch_assoc($send_members)) {
    if (!$first_newsletter_member_id) {
        $first_newsletter_member_id = $send_member['newsletter_member_id'];
    }
    if (isset($send_member['data_cache']) && strlen($send_member['data_cache']) > 1) {
        $cache = unserialize($send_member['data_cache']);
        if ($cache) {
            // we have extra fields! woo!
            foreach ($cache as $key => $val) {
                if (strpos($key, '_id')) {
Ejemplo n.º 2
0
</th>
                        <th><?php 
_e('Bounced');
?>
</th>
                        <th><?php 
_e('Unsubscribed');
?>
</th>
                        <th>&nbsp;</th>
                    </tr>
                    </thead>
                    <tbody>
                        <?php 
// list all members from thsi send.
$send_members = module_newsletter::get_send_members($send_id, $statistics);
$open_count = 0;
$x = 0;
$send_members_count = mysql_num_rows($send_members);
$sent_to_members = 0;
while ($send_member = mysql_fetch_assoc($send_members)) {
    if ($send_member['open_time']) {
        $open_count++;
    }
    ?>
                            <tr class="<?php 
    echo $x++ % 2 ? 'odd' : 'even';
    ?>
" id="newsletter_member_<?php 
    echo $send_member['newsletter_member_id'];
    ?>
Ejemplo n.º 3
0
 public static function get_replace_fields($newsletter_id = false, $send_id = false, $newsletter_member_id = false, $update_member_details = false)
 {
     $newsletter = self::get_newsletter($newsletter_id);
     $send_data = self::get_send($send_id);
     if ($send_data && $newsletter && $send_data['newsletter_id'] != $newsletter['newsletter_id']) {
         return array();
     }
     $send_time = isset($send_data['start_time']) ? $send_data['start_time'] : isset($newsletter['date_updated']) ? strtotime($newsletter['date_updated']) : time();
     $replace = array();
     $replace['COMPANY_NAME'] = '';
     $replace['FIRST_NAME'] = '';
     $replace['LAST_NAME'] = '';
     $replace['EMAIL'] = '';
     $replace['FROM_EMAIL'] = $newsletter['from_email'];
     $replace['FROM_NAME'] = $newsletter['from_name'];
     $replace['DAY'] = date('d', $send_time);
     $replace['MONTH'] = date('m', $send_time);
     $replace['YEAR'] = date('Y', $send_time);
     $replace['DATE'] = print_date($send_time);
     //urls
     $replace['UNSUBSCRIBE'] = self::unsubscribe_url($newsletter_id);
     $replace['VIEW_ONLINE'] = self::view_online_url($newsletter_id);
     $replace['LINK_ACCOUNT'] = '#';
     $replace['SENDTOFRIEND'] = '#';
     $replace['MEMBER_URL'] = '#';
     $replace['SUBJECT'] = $send_data && isset($send_data['subject']) && $send_data['subject'] ? $send_data['subject'] : $newsletter['subject'];
     // these will be overridden when the send goes out
     $use_newsletter_member = array();
     if ($send_id && $send_data) {
         // todo: BIG TODO: cache this loop, it will run every time a newsletter is mailed during the render query. eep!
         $extra_fields = $cache_data = array();
         if (isset($send_data['cache'])) {
             $cache_data = @unserialize($send_data['cache']);
             if ($cache_data && isset($cache_data['extra_fields'])) {
                 $extra_fields = $cache_data['extra_fields'];
             }
         }
         if (!$extra_fields) {
             $send_members = module_newsletter::get_send_members($send_id);
             // what other fields are we pulling in here?
             // hunt through the recipient listing and find the extra fields.
             $extra_fields = array();
             while ($send_member = mysql_fetch_assoc($send_members)) {
                 $cache = array();
                 if (isset($send_member['data_cache']) && strlen($send_member['data_cache']) > 1) {
                     $cache = unserialize($send_member['data_cache']);
                     if ($cache) {
                         // we have extra fields! woo!
                         foreach ($cache as $key => $val) {
                             if (strpos($key, '_id')) {
                                 continue;
                             }
                             // skip ids for now.
                             $extra_fields[$key] = true;
                         }
                     }
                 }
                 if ($newsletter_member_id && $send_member['newsletter_member_id'] == $newsletter_member_id) {
                     $use_newsletter_member = $send_member;
                 }
             }
             //ksort($extra_fields);
             mysql_free_result($send_members);
             //module_cache::put('newsletter','send_extra_fields_'.$send_id,$extra_fields,240);
             if (!is_array($cache_data)) {
                 $cache_data = array();
             }
             $cache_data['extra_fields'] = $extra_fields;
             self::save_send($send_id, array('cache' => serialize($cache_data)));
         } else {
             if ($newsletter_member_id) {
                 $use_newsletter_member = self::get_send_member($send_id, $newsletter_member_id);
             }
         }
         if (is_array($extra_fields)) {
             foreach ($extra_fields as $extra_field => $tf) {
                 if ($extra_field[0] == '_') {
                     continue;
                 }
                 $replace[strtoupper($extra_field)] = '';
             }
         }
         if ($use_newsletter_member) {
             if ($update_member_details) {
                 // grab the latest member details here
                 // this is because in the initial loop we only grab their email/basic details to speed up the queing process.
                 $new_data = self::update_individual_member_data($send_id, $newsletter_member_id, $use_newsletter_member);
                 if (is_array($new_data)) {
                     $use_newsletter_member = array_merge($use_newsletter_member, $new_data);
                 }
             }
             // we are using this members data in this array.
             // insert its values into the replace values.
             foreach ($use_newsletter_member as $key => $val) {
                 if (is_array($val)) {
                     continue;
                 }
                 //if(isset($replace[strtoupper($key)])){
                 $replace[strtoupper($key)] = $val;
                 //}
             }
             if (isset($use_newsletter_member['data_cache']) && strlen($use_newsletter_member['data_cache']) > 1) {
                 $cache = unserialize($use_newsletter_member['data_cache']);
                 if (is_array($cache)) {
                     foreach ($cache as $key => $val) {
                         if (is_array($val)) {
                             continue;
                         }
                         //if(isset($replace[strtoupper($key)])){
                         $replace[strtoupper($key)] = $val;
                         //}
                     }
                 }
             }
         }
     }
     return $replace;
 }