/**
  * Public function to create a new feed for a user.
  * @param import_url, user_id
  * @return true on success, on failure will throw an exception
  */
 public function save()
 {
     Logger::log("Enter: ExternalFeed::save");
     //check for feed, whether it exists in the system or not
     $sql = 'SELECT feed_id FROM {external_feed} WHERE import_url = ?';
     $res = Dal::query($sql, array($this->import_url));
     if ($res->numRows()) {
         //feed url already exists in the system
         $row = $res->fetchRow(DB_FETCHMODE_OBJECT);
         $this->feed_id = $row->feed_id;
         $sql = 'SELECT * FROM {user_feed} WHERE user_id = ? AND feed_id = ?';
         $res = Dal::query($sql, array($this->user_id, $this->feed_id));
         if ($res->numRows()) {
             // Import url already exists for given user.
             Logger::log("Feed url = {$this->import_url} already exists for user_id = {$this->user_id}");
             throw new CNException(IMPORT_URL_ALREADY_EXISTS, 'Import URL exists already for user.');
         } else {
             //saving feed for the user
             $this->save_user_feed();
             //refreshing the data for the feed
             $this->do_refresh = true;
             $this->refresh_feed_data();
         }
     } else {
         //This is a new feed and will be added to the existing feeds in the system
         $this->feed_id = Dal::next_id('ExternalFeed');
         $sql = 'INSERT INTO {external_feed} ( feed_id, import_url, max_posts, is_active, feed_type, last_build_date ) VALUES ( ?, ?, ?, ?, ?, ? )';
         $data = array($this->feed_id, $this->import_url, $this->max_posts, $this->is_active, $this->feed_type, time());
         try {
             //Inserting the feed to external_feed table
             $res = Dal::query($sql, $data);
         } catch (CNException $e) {
             Logger::log("ExternalFeed::save failed for user_id = {$this->user_id}. Associated sql = {$sql}");
             throw $e;
         }
         //saving feed for the user
         $this->save_user_feed();
         try {
             $this->import_posts();
             //importing the posts for given feed
         } catch (CNException $e) {
             Logger::log("{$e->message}");
             ExternalFeed::delete_user_feed($this->feed_id, $this->user_id);
             // deleting the inserted feed if import_posts fails.
             throw $e;
         }
     }
     Logger::log("Exit: ExternalFeed::save");
     return true;
 }
include_once "web/includes/page.php";
require_once "api/UserProfileFeed/UserProfileFeed.php";
if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) and $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
    $msg = __("Blog Feed sucessfully deleted.");
    if (!empty($_REQUEST['feed_url']) && is_object(PA::$login_user)) {
        try {
            PA::$login_user->delete_profile_field('blogs_rss', 'blog_feed', (int) $_REQUEST['section_id']);
            PA::$login_user->delete_profile_field('blogs_rss', 'blog_title', (int) $_REQUEST['section_id']);
            PA::$login_user->delete_profile_field('blogs_rss', 'blog_url', (int) $_REQUEST['section_id']);
            $feeds = new UserProfileFeed();
            $feeds->user_id = PA::$login_uid;
            $feeds->set_feed_type(USER_PROFILE_FEED);
            $feed_data = $feeds->get_user_feeds();
            $feed_id = null;
            foreach ($feed_data as $user_feed) {
                if ($user_feed->import_url == $_REQUEST['feed_url']) {
                    $feed_id = $user_feed->feed_id;
                }
            }
            if ($feed_id) {
                $feeds->set_feed_id((int) $feed_id);
                $feeds->delete_user_feed_data();
                ExternalFeed::delete_user_feed($feed_id, PA::$login_uid);
                ExternalFeed::deleteByID($feed_id);
            }
        } catch (Exception $e) {
            $msg = "Error deleting feed: <pre>" . $e->getMessge() . "</pre>";
        }
    }
}
echo $msg;