/** * Delete a record * @param integer $id ID of record to be deleted * @return void Record is deleted from database */ static function Delete($id) { App::LoadClass('Privacy'); App::LoadClass('Avatar'); App::LoadClass('Video'); App::LoadClass('Subscription'); App::LoadClass('Rating'); App::LoadClass('Flag'); App::LoadClass('Favorite'); App::LoadClass('Comment'); App::LoadClass('Post'); App::LoadClass('Message'); $db = Database::GetInstance(); $user = new self($id); Plugin::Trigger('user.delete'); // Delete Avatar if (!empty($user->avatar)) { Avatar::Delete($user->avatar); } // Delete Privacy Record $privacy_id = Privacy::Exist(array('user_id' => $id)); Privacy::Delete($privacy_id); // Delete Comments $query = "SELECT comment_id FROM " . DB_PREFIX . "comments WHERE user_id = {$id}"; $result = $db->Query($query); while ($row = $db->FetchObj($result)) { Comment::Delete($row->comment_id); } // Delete Ratings $query = "SELECT rating_id FROM " . DB_PREFIX . "ratings WHERE user_id = {$id}"; $result = $db->Query($query); while ($row = $db->FetchObj($result)) { Rating::Delete($row->rating_id); } // Delete Favorites $query = "SELECT fav_id FROM " . DB_PREFIX . "favorites WHERE user_id = {$id}"; $result = $db->Query($query); while ($row = $db->FetchObj($result)) { Favorite::Delete($row->fav_id); } // Delete Flags $query = "SELECT flag_id FROM " . DB_PREFIX . "flags WHERE id = {$id} AND type = 'user'"; $result = $db->Query($query); while ($row = $db->FetchObj($result)) { Flag::Delete($row->flag_id); } // Delete Subscriptions $query = "SELECT sub_id FROM " . DB_PREFIX . "subscriptions WHERE user_id = {$id} OR member = {$id}"; $result = $db->Query($query); while ($row = $db->FetchObj($result)) { Subscription::Delete($row->sub_id); } // Delete Posts $query = "SELECT post_id FROM " . DB_PREFIX . "posts WHERE user_id = {$id}"; $result = $db->Query($query); while ($row = $db->FetchObj($result)) { Post::Delete($row->post_id); } // Delete Messages $query = "SELECT message_id FROM " . DB_PREFIX . "messages WHERE user_id = {$id} OR recipient = {$id}"; $result = $db->Query($query); while ($row = $db->FetchObj($result)) { Message::Delete($row->message_id); } // Delete Videos $query = "SELECT video_id FROM " . DB_PREFIX . "videos WHERE user_id = {$id}"; $result = $db->Query($query); while ($row = $db->FetchObj($result)) { Video::Delete($row->video_id); } // Delete Privacy $query = "SELECT privacy_id FROM " . DB_PREFIX . "privacy WHERE user_id = {$id}"; $result = $db->Query($query); while ($row = $db->FetchObj($result)) { Privacy::Delete($row->privacy_id); } // Delete User $query = "DELETE FROM " . DB_PREFIX . self::$table . " WHERE " . self::$id_name . " = {$id}"; $db->Query($query); }
// Establish page variables, objects, arrays, etc View::InitView('myfavorites'); Plugin::Trigger('myfavorites.start'); Functions::RedirectIf(View::$vars->logged_in = User::LoginCheck(), HOST . '/login/'); View::$vars->user = new User(View::$vars->logged_in); $records_per_page = 9; $url = HOST . '/myaccount/myfavorites'; View::$vars->message = null; /*********************** Handle Form if submitted ***********************/ if (isset($_GET['vid']) && is_numeric($_GET['vid']) && $_GET['vid'] != 0) { $data = array('user_id' => View::$vars->user->user_id, 'video_id' => $_GET['vid']); $id = Favorite::Exist($data); if ($id) { Favorite::Delete($id); View::$vars->message = Language::GetText('success_favorite_removed'); View::$vars->message_type = 'success'; Plugin::Trigger('myfavorites.remove_favorite'); } } // Retrieve total count $query = "SELECT " . DB_PREFIX . "favorites.video_id FROM " . DB_PREFIX . "favorites INNER JOIN " . DB_PREFIX . "videos ON " . DB_PREFIX . "favorites.video_id = " . DB_PREFIX . "videos.video_id WHERE status = 'approved' AND private = '0' AND " . DB_PREFIX . "favorites.user_id = " . View::$vars->user->user_id; $result_count = $db->Query($query); $total = $db->Count($result_count); // Initialize pagination View::$vars->pagination = new Pagination($url, $total, $records_per_page); $start_record = View::$vars->pagination->GetStartRecord(); // Retrieve limited results $query .= " LIMIT {$start_record}, {$records_per_page}"; View::$vars->result = $db->Query($query);
/** * Delete a video * @param integer $video_id ID of video to be deleted * @return void Video is deleted from database and all related files and records are also deleted */ static function Delete($video_id) { App::LoadClass('Rating'); App::LoadClass('Flag'); App::LoadClass('Favorite'); App::LoadClass('Comment'); $db = Database::GetInstance(); $video = new self($video_id); Plugin::Trigger('video.delete'); // Delete files try { Filesystem::Open(); Filesystem::Delete(UPLOAD_PATH . '/flv/' . $video->filename . '.flv'); Filesystem::Delete(UPLOAD_PATH . '/thumbs/' . $video->filename . '.jpg'); Filesystem::Delete(UPLOAD_PATH . '/mobile/' . $video->filename . '.mp4'); Filesystem::Close(); } catch (Exception $e) { App::Alert('Error During Video Removal', "Unable to delete video files for: {$video->filename}. The video has been removed from the system, but the files still remain. Error: " . $e->getMessage()); } // Delete Comments $query = "SELECT comment_id FROM " . DB_PREFIX . "comments WHERE video_id = {$video_id}"; $result = $db->Query($query); while ($row = $db->FetchObj($result)) { Comment::Delete($row->comment_id); } // Delete Ratings $query = "SELECT rating_id FROM " . DB_PREFIX . "ratings WHERE video_id = {$video_id}"; $result = $db->Query($query); while ($row = $db->FetchObj($result)) { Rating::Delete($row->rating_id); } // Delete Favorites $query = "SELECT fav_id FROM " . DB_PREFIX . "favorites WHERE video_id = {$video_id}"; $result = $db->Query($query); while ($row = $db->FetchObj($result)) { Favorite::Delete($row->fav_id); } // Delete Flags $query = "SELECT flag_id FROM " . DB_PREFIX . "flags WHERE id = {$video_id} AND type = 'video'"; $result = $db->Query($query); while ($row = $db->FetchObj($result)) { Flag::Delete($row->flag_id); } // Delete Video $query = "DELETE FROM " . DB_PREFIX . "videos WHERE video_id = {$video_id}"; $db->Query($query); }