exit; } } // Handle feed deletion if (!empty($_GET['delete_feed']) && !empty($_GET['token']) && check_token(600, 'delete_feed')) { delete_feed_id(intval($_GET['delete_feed'])); header('location: settings.php'); exit; } // Handle feed refresh if (!empty($_GET['refresh_feed']) && !empty($_GET['token']) && check_token(600, 'refresh_feed')) { $query = $dbh->prepare('SELECT url FROM feeds WHERE id=:id'); $query->execute(array('id' => intval($_GET['refresh_feed']))); $url = $query->fetch(); if (!empty($url['url'])) { refresh_feeds(array(intval($_GET['refresh_feed']) => array('url' => $url['url'], 'post' => ''))); // TODO } header('location: settings.php'); exit; } // Handle OPML export if (isset($_POST['export']) && !empty($_POST['token']) && check_token(600, 'export_form')) { $feeds = array(); foreach ($_POST['export'] as $feed_id) { $feeds[] = get_feed($feed_id); } require_once 'inc/opml.php'; $now = new DateTime(); header('Content-disposition: attachment; filename="freeder_export_' . $now->format('d-m-Y_H-i') . '.xml"'); header('Content-type: "text/xml"; charset="utf8"');
/** * Edit a feed in the database and refresh it. * * @param $old_url is the current URL of the feed * @param $new_url is the new URL to assign to this feed * @param $new_title (optionnal) is the new title of the feed * @return true upon success, false otherwise. * @todo Edit more than just the URL */ function edit_feed($old_url, $new_url, $new_title = '') { global $dbh; if (filter_var($new_url, FILTER_VALIDATE_URL) && filter_var($old_url, FILTER_VALIDATE_URL)) { $query = $dbh->prepare('UPDATE feeds SET url=:url WHERE url=:old_url'); $query->execute(array(':old_url' => $old_url, 'new_url' => $new_url)); if ($query->rowCount() == 0) { return false; } else { refresh_feeds(array($dbh->lastInsertId() => $new_url)); // TODO return true; } } else { return false; } }