示例#1
0
        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"');
示例#2
0
/**
 * 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;
    }
}