$required_mode = array("update", "modify", "export", "message", "delete", "subscribers"); if (!in_array($mode, $required_mode)) { $mode = ''; } $vertical_response_data =& cw_session_register('vertical_response_data', array()); // clear data after day if (isset($vertical_response_data['time']) && $vertical_response_data['time'] + 60 * 60 * 24 < cw_core_get_time()) { $vertical_response_data = array(); } $conditions = " and show_as_news=2"; if ($mode == 'subscribers') { if ($action == "add" && !empty($new_email)) { $count = cw_query_first_cell("\n\t\t\tSELECT COUNT(*) FROM {$tables['newslist_subscription']}\n\t\t\tWHERE list_id='{$list_id}' AND email='{$new_email}'\n "); if ($count < 1) { $result = cw_vertical_response_add_subcriber($list_id, $new_email); if ($result) { db_query("\n\t\t\t\t\tINSERT INTO {$tables['newslist_subscription']} (list_id, email, since_date)\n\t\t\t\t\tVALUES ('{$list_id}', '{$new_email}', '" . cw_core_get_time() . "')\n\t\t\t\t"); } $top_message['content'] = cw_get_langvar_by_name("msg_adm_news_subscriber_add"); } else { $top_message['content'] = cw_get_langvar_by_name("msg_adm_err_news_subscriber_add"); $top_message['type'] = "E"; } } elseif ($action == "update") { $is_search = cw_query_first_cell("SELECT avail FROM {$tables['newslists']} WHERE list_id = '{$list_id}'"); // if list was manual, but now is search if (!$is_search && $type_list_control == 1) { // delete subscribers db_query("DELETE FROM {$tables['newslist_subscription']} WHERE list_id='{$list_id}'"); $vertical_response_data['subscribers'][$list_id] = array();
/** * 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); } } } } }