function initiate_watch_list($pet_wk = 0, $type = "") { global $session; global $database; global $am_i_local; //first thing's first, get a list of all watch lists that are eligible $all_eligile_watch_lists = Watch_List::find_by_sql("SELECT DISTINCT `wl`.* FROM `user` AS `u` \n\t\tINNER JOIN `watch_list` AS `wl` ON `wl`.`user_wk` = `u`.`user_wk`\n\t\tWHERE `u`.`is_deleted` = 0 AND `u`.`is_notifications_enabled` = 1;"); //we retain an array of all user_wk's that are eligible to receive an e-mail $temp_users = array(); //now that we have a list of all of them, we need to loop through each item //and we determine wether or not there are any people who should receive an e-mail foreach ($all_eligile_watch_lists as $all_eligile_watch_lists) { if (Watch_List::is_watch_list_eligible((int) $pet_wk, (int) $all_eligile_watch_lists->watch_list_wk)) { $temp_users[] = $all_eligile_watch_lists->user_wk; } } //by this point, we have a list of all users that are eligible to receive an e-mail //now, we need to de-dupe the list by people in case someone is in the list more than once $temp_users = array_unique($temp_users); //at this point, we have a list of all users to send an e-mail to foreach ($temp_users as $user) { //compose the email //only if we're not in a local environment if (!$am_i_local) { $to = $user->email_address; $subject = "Watch List Alert!"; $message = "\n\t\t\t\t<html>\n\t\t\t\t\t<head>\n\t\t\t\t\t\t<title>" . $subject . "</title>\n\t\t\t\t\t</head>\n\t\t\t\t\t<body>\n\t\t\t\t\t\t<p><strong>" . $user->username . "</strong>, we have an " . $type . " pet that meets at least one of your Watch Lists!</p>\n\t\t\t\t\t\t<p>Please the link below to view the pet!</p>\n\t\t\t\t\t\t<p><a href=\"" . ROOT_URL . "view_pet.php?pet_wk=" . $pet_wk . "\">" . ROOT_URL . "rview_pet.php?pet_wk=" . $pet_wk . "</a></p>\n\t\t\t\t\t\t<br /><br />\n\t\t\t\t\t\t<p>If you no longer wish to receive these e-mails, you can either delete your watch list or opt out of all e-mail notifications through your account.</p>\n\t\t\t\t\t</body>\n\t\t\t\t</html>\n\t\t\t\t"; // Always set content-type when sending HTML email $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; // More headers $headers .= 'From: <support@pet_adoption.com>' . "\r\n"; //send out the email mail($to, $subject, $message, $headers); } } //we're done! }
} else { //if we're here, we actually need to delete it //and all the entries from it $sql = "DELETE FROM `watch_list_detail` WHERE `watch_list_wk` = " . $to_delete->watch_list_wk . ";"; if ($to_delete->delete() && $database->query($sql)) { $session->message("Your watch list was successfully removed!"); } else { $session->message("There was an error removing the watch list entry."); } } } //redirect back redirect_head(file_name_without_get()); } //grab all the watch lists for this user $watch_lists = Watch_List::find_by_sql("SELECT * FROM `watch_list` WHERE `user_wk` = " . $user->user_wk . ";"); $page->body = "<p><a href=\"create_watch_list.php\">Add new Watch List</a></p><br>"; //if there are records returned if ($watch_lists) { $page->body .= "<p><em>Your current watch lists.</em><br />"; foreach ($watch_lists as $list) { //var_dump($list); $page->body .= "<br /><strong>" . $list->name . "</strong><br />"; $page->body .= "<a href=\"" . file_name_without_get() . "?delete_watch_list_wk=" . $list->watch_list_wk . "\" style=\"margin-left:1.5em;\" >Delete</a><br />"; } $page->body .= "</p>"; } else { //there are no watch lists returned $page->body .= "<p><em>You currently don't have any watch lists.</em></p>"; } //header template
<?php //require the framework require_once "../requires/initialize.php"; $page = new Page(); $page->name = "Add New Watch Lists"; $page->is_user_only = true; //process the form if (isset($_POST['submit'])) { //first thing's first, make the watch list entry $new_watch_list = new Watch_List(); $new_watch_list->name = $_POST['name']; $new_watch_list->user_wk = $user->user_wk; if (!$new_watch_list->save()) { $session->message("There was an issue, please try again."); redirect_head(current_url()); } $new_watch_list->watch_list_wk = $database->insert_id(); foreach ($_POST as $key => $value) { //skip the submit field and name field if ($key != 'submit' && $key != 'name') { if (!empty($value)) { //only process if the value is not empty //instantiate the new object $new_value = new Watch_List_Detail(); //set it the watch list key $new_value->watch_list_wk = $new_watch_list->watch_list_wk; //set it the column name $new_value->column_name = $key; if (is_array($value)) { //the value we're processing is an array