<?php\r
class Feeds extends Protected_Handler {\r
\r
+ function csrf_ignore($method) {\r
+ $csrf_ignored = array("index");\r
+\r
+ return array_search($method, $csrf_ignored) !== false;\r
+ }\r
+\r
private function feedlist_init_cat($cat_id, $hidden = false) {\r
$obj = array();\r
$cat_id = (int) $cat_id;\r
$tog_marked_link = "selectionToggleMarked()";\r
$tog_published_link = "selectionTogglePublished()";\r
\r
- $reply = "<div id=\"subtoolbar_main\">";\r
+ if ($is_cat) $cat_q = "&is_cat=$is_cat";\r
+\r
+ if ($search) {\r
+ $search_q = "&q=$search&m=$match_on&smode=$search_mode";\r
+ } else {\r
+ $search_q = "";\r
+ }\r
+\r
+ $rss_link = htmlspecialchars(get_self_url_prefix() .\r
+ "/public.php?op=rss&id=$feed_id$cat_q$search_q");\r
+\r
+ // right part\r
+\r
+ $reply .= "<span class='r'>";\r
+\r
+ if ($feed_site_url) {\r
+ $target = "target=\"_blank\"";\r
+ $reply .= "<a title=\"".__("Visit the website")."\" $target href=\"$feed_site_url\">".\r
+ truncate_string($feed_title,30)."</a>";\r
+\r
+ if ($error) {\r
+ $reply .= " (<span class=\"error\" title=\"$error\">Error</span>)";\r
+ }\r
+\r
+ } else {\r
+ $reply .= $feed_title;\r
+ }\r
+\r
+ $reply .= "\r
+ <a href=\"#\"\r
+ title=\"".__("View as RSS feed")."\"\r
+ onclick=\"displayDlg('generatedFeed', '$feed_id:$is_cat:$rss_link')\">\r
+ <img class=\"noborder\" style=\"vertical-align : middle\" src=\"images/feed-icon-12x12.png\"></a>";\r
+\r
+ $reply .= "</span>";\r
+\r
+ // left part\r
\r
$reply .= __('Select:')."\r
<a href=\"#\" onclick=\"$sel_all_link\">".__('All')."</a>,\r
$reply .= "<option value=\"emailArticle(false)\">".__('Forward by email').\r
"</option>";\r
\r
- if ($is_cat) $cat_q = "&is_cat=$is_cat";\r
-\r
- if ($search) {\r
- $search_q = "&q=$search&m=$match_on&smode=$search_mode";\r
- } else {\r
- $search_q = "";\r
- }\r
-\r
- $rss_link = htmlspecialchars(get_self_url_prefix() .\r
- "/public.php?op=rss&id=$feed_id$cat_q$search_q");\r
-\r
$reply .= "<option value=\"0\" disabled=\"1\">".__('Feed:')."</option>";\r
\r
$reply .= "<option value=\"catchupPage()\">".__('Mark as read')."</option>";\r
\r
$reply .= "</select>";\r
\r
- $reply .= "</div>";\r
+ //$reply .= "</div>";\r
\r
- $reply .= "<div id=\"subtoolbar_ftitle\">";\r
-\r
- if ($feed_site_url) {\r
- $target = "target=\"_blank\"";\r
- $reply .= "<a title=\"".__("Visit the website")."\" $target href=\"$feed_site_url\">".\r
- truncate_string($feed_title,30)."</a>";\r
-\r
- if ($error) {\r
- $reply .= " (<span class=\"error\" title=\"$error\">Error</span>)";\r
- }\r
-\r
- } else {\r
- if ($feed_id < -10) {\r
- $label_id = -11-$feed_id;\r
-\r
- $result = db_query($this->link, "SELECT fg_color, bg_color\r
- FROM ttrss_labels2 WHERE id = '$label_id' AND owner_uid = " .\r
- $_SESSION["uid"]);\r
-\r
- if (db_num_rows($result) != 0) {\r
- $fg_color = db_fetch_result($result, 0, "fg_color");\r
- $bg_color = db_fetch_result($result, 0, "bg_color");\r
-\r
- $reply .= "<span style=\"background : $bg_color; color : $fg_color\" >";\r
- $reply .= $feed_title;\r
- $reply .= "</span>";\r
- } else {\r
- $reply .= $feed_title;\r
- }\r
-\r
- } else {\r
- $reply .= $feed_title;\r
- }\r
- }\r
-\r
- $reply .= "\r
- <a href=\"#\"\r
- title=\"".__("View as RSS feed")."\"\r
- onclick=\"displayDlg('generatedFeed', '$feed_id:$is_cat:$rss_link')\">\r
- <img class=\"noborder\" style=\"vertical-align : middle\" src=\"images/feed-icon-12x12.png\"></a>";\r
-\r
- $reply .= "</div>";\r
+ //$reply .= "</h2";\r
\r
return $reply;\r
}\r
catchupArticlesById($this->link, $ids, $cmode);\r
} */\r
\r
- //if ($method == "ForceUpdate" && $feed && is_numeric($feed) > 0) {\r
- // update_rss_feed($this->link, $feed, true);\r
- //}\r
+ if ($method == "ForceUpdate" && $feed && is_numeric($feed) > 0) {\r
+ include "rssfuncs.php";\r
+ update_rss_feed($this->link, $feed, true);\r
+ }\r
\r
if ($method == "MarkAllRead") {\r
catchup_feed($this->link, $feed, $cat_view);\r
\r
$headlines_count = db_num_rows($result);\r
\r
+ if (get_pref($this->link, 'COMBINED_DISPLAY_MODE')) {\r
+ $button_plugins = array();\r
+ foreach (explode(",", ARTICLE_BUTTON_PLUGINS) as $p) {\r
+ $pclass = trim("${p}_button");\r
+\r
+ if (class_exists($pclass)) {\r
+ $plugin = new $pclass($link);\r
+ array_push($button_plugins, $plugin);\r
+ }\r
+ }\r
+ }\r
+\r
if (db_num_rows($result) > 0) {\r
\r
$lnum = $offset;\r
\r
//$note_escaped = htmlspecialchars($line['note'], ENT_QUOTES);\r
\r
- $reply['content'] .= "<img src=\"images/art-pub-note.png\"\r
- style=\"cursor : pointer\" style=\"cursor : pointer\"\r
- onclick=\"editArticleNote($id)\"\r
- alt='PubNote' title='".__('Edit article note')."'>";\r
-\r
- $reply['content'] .= "<img src=\"".theme_image($this->link, 'images/art-email.png')."\"\r
- style=\"cursor : pointer\"\r
- onclick=\"emailArticle($id)\"\r
- alt='Zoom' title='".__('Forward by email')."'>";\r
-\r
- if (ENABLE_TWEET_BUTTON) {\r
- $reply['content'] .= "<img src=\"".theme_image($this->link, 'images/art-tweet.png')."\"\r
- class='tagsPic' style=\"cursor : pointer\"\r
- onclick=\"tweetArticle($id)\"\r
- alt='Zoom' title='".__('Share on Twitter')."'>";\r
+ foreach ($button_plugins as $p) {\r
+ $reply['content'] .= $p->render($id, $line);\r
}\r
\r
- $reply['content'] .= "<img src=\"".theme_image($this->link, 'images/art-share.png')."\"\r
- class='tagsPic' style=\"cursor : pointer\"\r
- onclick=\"shareArticle(".$line['int_id'].")\"\r
- alt='Zoom' title='".__('Share by URL')."'>";\r
-\r
$reply['content'] .= "<img src=\"images/digest_checkbox.png\"\r
style=\"cursor : pointer\" style=\"cursor : pointer\"\r
onclick=\"dismissArticle($id)\"\r
- alt='Dismiss' title='".__('Dismiss article')."'>";\r
+ title='".__('Close article')."'>";\r
\r
$reply['content'] .= "</div>";\r
$reply['content'] .= "</div>";\r