119 lines
4.0 KiB
PHP
119 lines
4.0 KiB
PHP
<?php
|
|
/*
|
|
* This file is part of FEED ON FEEDS - http://feedonfeeds.com/
|
|
*
|
|
* add.php - displays form to add a feed
|
|
*
|
|
*
|
|
* Copyright (C) 2004-2007 Stephen Minutillo
|
|
* steve@minutillo.com - http://minutillo.com/steve/
|
|
* Modified by Vitaliy Filippov (c) 2009
|
|
* vitalif@mail.ru - http://lib.custis.ru/
|
|
*
|
|
* Distributed under the GPL - see LICENSE
|
|
*
|
|
*/
|
|
|
|
include("header.php");
|
|
|
|
$url = $_REQUEST['rss_url'];
|
|
$login = $_REQUEST['basic_login'];
|
|
$password = $_REQUEST['basic_password'];
|
|
$opml = $_REQUEST['opml_url'];
|
|
$file = $_POST['opml_file'];
|
|
$unread = $_REQUEST['unread'];
|
|
|
|
if ($url && !preg_match('!^[a-z0-9_]+://!is', $url))
|
|
$url = "http://$url";
|
|
|
|
if ($login == '%user%')
|
|
$login = fof_username();
|
|
|
|
$feeds = array();
|
|
|
|
if ($_REQUEST['do'])
|
|
{
|
|
if ($opml)
|
|
{
|
|
$sfile = new SimplePie_File($opml);
|
|
if(!$sfile->success)
|
|
{
|
|
echo "Cannot open $opml<br>";
|
|
return false;
|
|
}
|
|
$content = $sfile->body;
|
|
$feeds = fof_opml_to_array($content);
|
|
}
|
|
if ($url)
|
|
{
|
|
if ($login && strlen($password))
|
|
$url = preg_replace('!^([a-z0-9_]+)://([^/]*:[^/]*@)?!is', '\1://' . str_replace("\\", "\\\\", urlencode($login) . ':' . urlencode($password)) . '@', $url);
|
|
$feeds[] = $url;
|
|
}
|
|
}
|
|
|
|
$url = preg_replace('!^([a-z0-9_]+)://([^/]*:[^/]*@)?!is', '\1://', $url);
|
|
|
|
if ($_FILES['opml_file']['tmp_name'])
|
|
{
|
|
if(!$content_array = file($_FILES['opml_file']['tmp_name']))
|
|
{
|
|
echo "Cannot open uploaded file<br>";
|
|
}
|
|
else
|
|
{
|
|
$content = implode("", $content_array);
|
|
$feeds = fof_opml_to_array($content);
|
|
}
|
|
}
|
|
|
|
$add_feed_url = "http";
|
|
if($_SERVER["HTTPS"] == "on")
|
|
$add_feed_url = "https";
|
|
$add_feed_url .= "://" . $_SERVER["HTTP_HOST"] . $_SERVER["SCRIPT_NAME"];
|
|
?>
|
|
|
|
<div style="background: #eee; border: 1px solid black; padding: 1.5em; margin: 1.5em;">If your browser is cool, you can <a href='javascript:window.navigator.registerContentHandler("application/vnd.mozilla.maybe.feed", "<?php echo $add_feed_url ?>?basic_login=%25user%25&do=1&rss_url=%s", "Feed on Feeds")'>register Feed on Feeds as a Feed Reader</a>. If it is not cool, you can still use the <a href="javascript:void(location.href='<?php echo $add_feed_url ?>?basic_login=%25user%25&do=1&rss_url='+escape(location))">FoF subscribe</a> bookmarklet to subscribe to any page with a feed. Just add it as a bookmark and then click on it when you are at a page you'd like to subscribe to!</div>
|
|
|
|
<form method="post" action="opml.php">
|
|
|
|
<input type="submit" value="Export subscriptions as OPML">
|
|
|
|
</form>
|
|
<br>
|
|
|
|
<form method="post" name="addform" action="add.php" enctype="multipart/form-data">
|
|
|
|
When adding feeds, mark <select name="unread"><option value=today <?= $unread == "today" ? "selected" : "" ?> >today's</option><option value=all <?= $unread == "all" ? "selected" : "" ?> >all</option><option value=no <?= $unread == "no" ? "selected" : "" ?> >no</option></select> items as unread<br><br>
|
|
|
|
Login: <input type="text" name="basic_login" value="<?= htmlspecialchars($login) ?>"> Password: <input type="password" name="basic_password" value="<?= htmlspecialchars($password) ?>"> (optional) for password-protected feeds<br><br>
|
|
|
|
RSS or weblog URL: <input type="text" name="rss_url" size="40" value="<?= htmlspecialchars($url) ?>"><input name="do" type="Submit" value="Add a feed"><br><br>
|
|
|
|
OPML URL: <input type="hidden" name="MAX_FILE_SIZE" value="100000">
|
|
|
|
<input type="text" name="opml_url" size="40" value="<?= htmlspecialchars($opml) ?>"><input name="do" type="Submit" value="Add feeds from OPML file on the Internet"><br><br>
|
|
|
|
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
|
|
OPML filename: <input type="file" name="opml_file" size="40" value="<?= htmlspecialchars($file) ?>"><input name="do" type="Submit" value="Upload an OPML file">
|
|
|
|
</form>
|
|
|
|
<?php
|
|
if(count($feeds))
|
|
{
|
|
print("<script>\nwindow.onload = ajaxadd;\nfeedslist = [");
|
|
|
|
foreach($feeds as $feed)
|
|
{
|
|
$feedjson[] = "{'url': '" . addslashes($feed) . "'}";
|
|
}
|
|
|
|
print(join($feedjson, ", "));
|
|
print("];\n</script>");
|
|
}
|
|
print("<br>");
|
|
|
|
include("footer.php");
|
|
?>
|