Ejemplo n.º 1
0
    if ($list_id) {
        cw_header_location("index.php?target={$target}&list_id=" . $list['list_id']);
    } else {
        cw_header_location("index.php?target=" . $target);
    }
}
if (isset($_GET['list_id'])) {
    if (!empty($list_id)) {
        $list = cw_query_first("select * from {$tables['newslists']} WHERE list_id='{$list_id}'");
        if ((!isset($vertical_response_data['subscribers'][$list_id]) || empty($vertical_response_data['subscribers'][$list_id])) && $list['avail'] == 0) {
            if (empty($vertical_response_data['time'])) {
                $vertical_response_data['time'] = cw_core_get_time();
                // lifetime
            }
            db_query("DELETE FROM {$tables['newslist_subscription']} WHERE list_id='{$list_id}'");
            $result = cw_vertical_response_get_subscribers($list_id);
            $vertical_response_data['subscribers'][$list_id] = true;
            if ($result) {
                $data = array();
                foreach ($result as $item) {
                    $data['list_id'] = $list_id;
                    $data['email'] = addslashes($item['email']);
                    $data['since_date'] = $item['create_date'];
                    cw_array2insert('newslist_subscription', $data);
                }
            }
        } elseif ($list['avail'] == 1 && $list['salesman_customer_id']) {
            db_query("DELETE FROM {$tables['newslist_subscription']} WHERE list_id='{$list_id}'");
            // search subscribers
            $saved_search = $list['salesman_customer_id'];
            // salesman_customer_id is saved search id
/**
 * Update emails for saved_search list by cron
 */
function cw_vertical_response_emails_update()
{
    global $tables;
    $lists = cw_query("\r\n\t\tSELECT list_id, salesman_customer_id FROM {$tables['newslists']}\r\n\t\tWHERE avail = 1 AND show_as_news = 2 AND salesman_customer_id <> 0\r\n\t");
    if ($lists) {
        foreach ($lists as $list) {
            $list_id = $list['list_id'];
            db_query("DELETE FROM {$tables['newslist_subscription']} WHERE list_id = '{$list_id}'");
            // search subscribers
            $saved_search = $list['salesman_customer_id'];
            // salesman_customer_id is saved search id
            $sql_query = cw_query_first_cell("\r\n\t\t\t\tSELECT sql_query FROM {$tables['saved_search']} WHERE ss_id = '{$saved_search}'\r\n\t\t\t");
            $exist_cw = array();
            // emails from saved_search
            if ($sql_query) {
                $results = cw_query($sql_query);
                if ($results) {
                    $data = array();
                    foreach ($results as $result) {
                        $count = cw_query_first_cell("\r\n\t\t\t\t\t\t\tSELECT COUNT(*) FROM {$tables['newslist_subscription']}\r\n\t\t\t\t\t\t\tWHERE list_id='{$list_id}' AND email='" . $result['email'] . "'\r\n\t\t\t\t\t\t");
                        if ($count < 1) {
                            $exist_cw[] = $result['email'];
                            $data['list_id'] = $list_id;
                            $data['email'] = addslashes($result['email']);
                            $data['since_date'] = cw_core_get_time();
                            cw_array2insert('newslist_subscription', $data);
                        }
                    }
                }
            }
            // synchronize emails
            // get emails from vr
            $exist_vr = array();
            $subscribers = cw_vertical_response_get_subscribers($list_id);
            if ($subscribers) {
                foreach ($subscribers as $subscriber) {
                    $exist_vr[] = $subscriber['email'];
                }
            }
            // need add
            $need_add = array_diff($exist_cw, $exist_vr);
            if ($need_add) {
                foreach ($need_add as $email) {
                    cw_vertical_response_add_subcriber($list_id, $email);
                }
            }
            // need delete
            $need_delete = array_diff($exist_vr, $exist_cw);
            if ($need_delete) {
                foreach ($need_delete as $email) {
                    cw_vertical_response_delete_subcriber($list_id, $email);
                }
            }
        }
    }
}