print "</rpc-reply>";
}
- function subscribe_to_feed($link, $feed_link, $cat_id = 0,
+ function subscribe_to_feed($link, $url, $cat_id = 0,
$auth_login = '', $auth_pass = '') {
- # check for feed:http://url
- $feed_link = trim(preg_replace("/^feed:/", "", $feed_link));
+ $parts = parse_url($url);
- # check for feed://URL
- if (strpos($feed_link, "//") === 0) {
- $feed_link = "http:$feed_link";
- }
+ if (!validate_feed_url($url)) return 2;
+
+ if ($parts['scheme'] == 'feed') $parts['scheme'] = 'http';
- if ($feed_link == "") return;
+ $url = make_url_from_parts($parts);
if ($cat_id == "0" || !$cat_id) {
$cat_qpart = "NULL";
$result = db_query($link,
"SELECT id FROM ttrss_feeds
- WHERE feed_url = '$feed_link' AND owner_uid = ".$_SESSION["uid"]);
+ WHERE feed_url = '$url' AND owner_uid = ".$_SESSION["uid"]);
if (db_num_rows($result) == 0) {
$result = db_query($link,
"INSERT INTO ttrss_feeds
(owner_uid,feed_url,title,cat_id, auth_login,auth_pass)
- VALUES ('".$_SESSION["uid"]."', '$feed_link',
+ VALUES ('".$_SESSION["uid"]."', '$url',
'[Unknown]', $cat_qpart, '$auth_login', '$auth_pass')");
$result = db_query($link,
- "SELECT id FROM ttrss_feeds WHERE feed_url = '$feed_link'
+ "SELECT id FROM ttrss_feeds WHERE feed_url = '$url'
AND owner_uid = " . $_SESSION["uid"]);
$feed_id = db_fetch_result($result, 0, "id");
if ($feed_id) {
- update_rss_feed($link, $feed_link, $feed_id, true);
+ update_rss_feed($link, $url, $feed_id, true);
}
- return true;
+ return 1;
} else {
- return false;
+ return 0;
}
}
}
if (get_pref($link, "STRIP_IMAGES", $owner)) {
-
$res = preg_replace('/<img[^>]+>/is', '', $res);
+ }
+ if (get_pref($link, 'OPEN_LINKS_IN_NEW_WINDOW')) {
+ $res = preg_replace("/href=/i", "target=\"_blank\" href=", $res);
}
return $res;
if ($result) {
- $link_target = "";
-
- if (get_pref($link, 'OPEN_LINKS_IN_NEW_WINDOW')) {
- $link_target = "target=\"_blank\"";
- }
-
$line = db_fetch_assoc($result);
if ($line["icon_url"]) {
} else {
$comments_url = $line["link"];
}
- $entry_comments = "<a $link_target href=\"$comments_url\">$num_comments comments</a>";
+ $entry_comments = "<a target='_blank' href=\"$comments_url\">$num_comments comments</a>";
} else {
if ($line["comments"] && $line["link"] != $line["comments"]) {
- $entry_comments = "<a $link_target href=\"".$line["comments"]."\">comments</a>";
+ $entry_comments = "<a target='_blank' href=\"".$line["comments"]."\">comments</a>";
}
}
print "<div class=\"postDate$rtl_class\">$parsed_updated</div>";
if ($line["link"]) {
- print "<div clear='both'><a $link_target href=\"" . $line["link"] . "\">" .
+ print "<div clear='both'><a target='_blank' href=\"" . $line["link"] . "\">" .
$line["title"] . "</a><span class='author'>$entry_author</span></div>";
} else {
print "<div clear='both'>" . $line["title"] . "$entry_author</div>";
$article_content = sanitize_rss($link, $line["content"]);
- if (get_pref($link, 'OPEN_LINKS_IN_NEW_WINDOW')) {
- $article_content = preg_replace("/href=/i", "target=\"_blank\" href=",
- $article_content);
- }
-
print "<div id=\"POSTNOTE-$id\">";
if ($line['note']) {
print format_article_note($id, $line['note']);
print "</span></div>";
- if (get_pref($link, 'OPEN_LINKS_IN_NEW_WINDOW')) {
- $line["content_preview"] = preg_replace("/href=/i",
- "target=\"_blank\" href=", $line["content_preview"]);
- }
-
if ($show_excerpt) {
print "<div class=\"cdmExcerpt\" id=\"CEXC-$id\"
onclick=\"cdmExpandArticle($id)\"
return 0;
}
}
+
+ function make_url_from_parts($parts) {
+ $url = $parts['scheme'] . '://' . $parts['host'];
+
+ if ($parts['path']) $url .= $parts['path'];
+ if ($parts['query']) $url .= '?' . $parts['query'];
+
+ return $url;
+ }
+
+ function validate_feed_url($url) {
+ $parts = parse_url($url);
+
+ return ($parts['scheme'] == 'http' || $parts['scheme'] == 'feed' || $parts['scheme'] == 'https');
+
+ }
?>