summaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
Diffstat (limited to 'classes')
-rw-r--r--classes/api.php11
-rw-r--r--classes/dlg.php6
-rw-r--r--classes/feeds.php71
-rw-r--r--classes/handler/public.php7
-rw-r--r--classes/pluginhost.php5
-rw-r--r--classes/pref/feeds.php28
-rw-r--r--classes/pref/filters.php6
-rw-r--r--classes/pref/prefs.php31
-rw-r--r--classes/rpc.php2
9 files changed, 105 insertions, 62 deletions
diff --git a/classes/api.php b/classes/api.php
index 74464821f..5e7ec6573 100644
--- a/classes/api.php
+++ b/classes/api.php
@@ -194,11 +194,10 @@ class API extends Handler {
$search = db_escape_string($_REQUEST["search"]);
$search_mode = db_escape_string($_REQUEST["search_mode"]);
- $match_on = db_escape_string($_REQUEST["match_on"]);
$headlines = $this->api_get_headlines($this->link, $feed_id, $limit, $offset,
$filter, $is_cat, $show_excerpt, $show_content, $view_mode, false,
- $include_attachments, $since_id, $search, $search_mode, $match_on,
+ $include_attachments, $since_id, $search, $search_mode,
$include_nested, $sanitize_content);
print $this->wrap(self::STATUS_OK, $headlines);
@@ -584,11 +583,11 @@ class API extends Handler {
static function api_get_headlines($link, $feed_id, $limit, $offset,
$filter, $is_cat, $show_excerpt, $show_content, $view_mode, $order,
$include_attachments, $since_id,
- $search = "", $search_mode = "", $match_on = "",
+ $search = "", $search_mode = "",
$include_nested = false, $sanitize_content = true) {
$qfh_ret = queryFeedHeadlines($link, $feed_id, $limit,
- $view_mode, $is_cat, $search, $search_mode, $match_on,
+ $view_mode, $is_cat, $search, $search_mode,
$order, $offset, 0, false, $since_id, $include_nested);
$result = $qfh_ret[0];
@@ -636,7 +635,9 @@ class API extends Handler {
if ($sanitize_content) {
$headline_row["content"] = sanitize($link,
- $line["content_preview"], false, false, $line["site_url"]);
+ $line["content_preview"],
+ sql_bool_to_bool($line['hide_images']),
+ false, $line["site_url"]);
} else {
$headline_row["content"] = $line["content_preview"];
}
diff --git a/classes/dlg.php b/classes/dlg.php
index 74eb9f633..3bb2caba4 100644
--- a/classes/dlg.php
+++ b/classes/dlg.php
@@ -236,8 +236,7 @@ class Dlg extends Handler_Protected {
print "<div style='float : right'>
<img style='display : none'
- id='feed_add_spinner' src='".
- theme_image($this->link, 'images/indicator_white.gif')."'></div>";
+ id='feed_add_spinner' src='images/indicator_white.gif'></div>";
print "<input style=\"font-size : 16px; width : 20em;\"
placeHolder=\"".__("Feed or site URL")."\"
@@ -311,8 +310,7 @@ class Dlg extends Handler_Protected {
print "<div dojoType=\"dijit.Toolbar\">
<div style='float : right'>
<img style='display : none'
- id='feed_browser_spinner' src='".
- theme_image($this->link, 'images/indicator_white.gif')."'>
+ id='feed_browser_spinner' src='images/indicator_white.gif'>
<input name=\"search\" dojoType=\"dijit.form.TextBox\" size=\"20\" type=\"search\"
onchange=\"dijit.byId('feedBrowserDlg').update()\" value=\"$browser_search\">
<button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('feedBrowserDlg').update()\">".__('Search')."</button>
diff --git a/classes/feeds.php b/classes/feeds.php
index 4857cca78..79aaa8e55 100644
--- a/classes/feeds.php
+++ b/classes/feeds.php
@@ -22,7 +22,7 @@ class Feeds extends Handler_Protected {
}
private function format_headline_subtoolbar($feed_site_url, $feed_title,
- $feed_id, $is_cat, $search, $match_on,
+ $feed_id, $is_cat, $search,
$search_mode, $view_mode, $error) {
$page_prev_link = "viewFeedGoPage(-1)";
@@ -50,7 +50,7 @@ class Feeds extends Handler_Protected {
if ($is_cat) $cat_q = "&is_cat=$is_cat";
if ($search) {
- $search_q = "&q=$search&m=$match_on&smode=$search_mode";
+ $search_q = "&q=$search&smode=$search_mode";
} else {
$search_q = "";
}
@@ -126,6 +126,11 @@ class Feeds extends Handler_Protected {
"</option>";
}
+ if ($pluginhost->get_plugin("mailto")) {
+ $reply .= "<option value=\"mailtoArticle(false)\">".__('Forward by email').
+ "</option>";
+ }
+
$reply .= "<option value=\"0\" disabled=\"1\">".__('Feed:')."</option>";
$reply .= "<option value=\"catchupPage()\">".__('Mark as read')."</option>";
@@ -204,7 +209,6 @@ class Feeds extends Handler_Protected {
}
@$search_mode = db_escape_string($_REQUEST["search_mode"]);
- $match_on = "both"; // deprecated, TODO: remove
if ($_REQUEST["debug"]) $timing_info = print_checkpoint("H0", $timing_info);
@@ -214,7 +218,7 @@ class Feeds extends Handler_Protected {
}
// error_log("search_mode: " . $search_mode);
$qfh_ret = queryFeedHeadlines($this->link, $feed, $limit, $view_mode, $cat_view,
- $search, $search_mode, $match_on, $override_order, $offset, 0,
+ $search, $search_mode, $override_order, $offset, 0,
false, 0, $include_children);
if ($_REQUEST["debug"]) $timing_info = print_checkpoint("H1", $timing_info);
@@ -228,7 +232,7 @@ class Feeds extends Handler_Protected {
$reply['toolbar'] = $this->format_headline_subtoolbar($feed_site_url,
$feed_title,
- $feed, $cat_view, $search, $match_on, $search_mode, $view_mode,
+ $feed, $cat_view, $search, $search_mode, $view_mode,
$last_error);
$headlines_count = db_num_rows($result);
@@ -258,6 +262,8 @@ class Feeds extends Handler_Protected {
if ($_REQUEST["debug"]) $timing_info = print_checkpoint("PS", $timing_info);
+ $expand_cdm = get_pref($this->link, 'CDM_EXPANDED');
+
while ($line = db_fetch_assoc($result)) {
$class = ($lnum % 2) ? "even" : "odd";
@@ -314,24 +320,22 @@ class Feeds extends Handler_Protected {
if ($line["marked"] == "t" || $line["marked"] == "1") {
$marked_pic = "<img id=\"FMPIC-$id\"
- src=\"".theme_image($this->link, 'images/mark_set.svg')."\"
+ src=\"images/mark_set.svg\"
class=\"markedPic\" alt=\"Unstar article\"
onclick='javascript:toggleMark($id)'>";
} else {
$marked_pic = "<img id=\"FMPIC-$id\"
- src=\"".theme_image($this->link, 'images/mark_unset.svg')."\"
+ src=\"images/mark_unset.svg\"
class=\"markedPic\" alt=\"Star article\"
onclick='javascript:toggleMark($id)'>";
}
if ($line["published"] == "t" || $line["published"] == "1") {
- $published_pic = "<img id=\"FPPIC-$id\" src=\"".theme_image($this->link,
- 'images/pub_set.svg')."\"
+ $published_pic = "<img id=\"FPPIC-$id\" src=\"images/pub_set.svg\"
class=\"markedPic\"
alt=\"Unpublish article\" onclick='javascript:togglePub($id)'>";
} else {
- $published_pic = "<img id=\"FPPIC-$id\" src=\"".theme_image($this->link,
- 'images/pub_unset.svg')."\"
+ $published_pic = "<img id=\"FPPIC-$id\" src=\"images/pub_unset.svg\"
class=\"markedPic\"
alt=\"Publish article\" onclick='javascript:togglePub($id)'>";
}
@@ -356,8 +360,7 @@ class Feeds extends Handler_Protected {
$score = $line["score"];
- $score_pic = theme_image($this->link,
- "images/" . get_score_pic($score));
+ $score_pic = "images/" . get_score_pic($score);
/* $score_title = __("(Click to change)");
$score_pic = "<img class='hlScorePic' src=\"images/$score_pic\"
@@ -400,11 +403,11 @@ class Feeds extends Handler_Protected {
$cur_feed_title = htmlspecialchars($cur_feed_title);
- $vf_catchup_link = "(<a onclick='catchupFeedInGroup($feed_id);' href='#'>".__('mark as read')."</a>)";
+ $vf_catchup_link = "(<a class='catchup' onclick='catchupFeedInGroup($feed_id);' href='#'>".__('Mark as read')."</a>)";
$reply['content'] .= "<div class='cdmFeedTitle'>".
"<div style=\"float : right\">$feed_icon_img</div>".
- "<a href=\"#\" onclick=\"viewfeed($feed_id)\">".
+ "<a class='title' href=\"#\" onclick=\"viewfeed($feed_id)\">".
$line["feed_title"]."</a> $vf_catchup_link</div>";
}
@@ -476,7 +479,7 @@ class Feeds extends Handler_Protected {
unset($line["tag_cache"]);
$line["content"] = sanitize($this->link, $line["content_preview"],
- false, false, $entry_site_url);
+ sql_bool_to_bool($line['hide_images']), false, $entry_site_url);
foreach ($pluginhost->get_hooks($pluginhost::HOOK_RENDER_ARTICLE_CDM) as $p) {
$line = $p->hook_render_article_cdm($line);
@@ -490,7 +493,7 @@ class Feeds extends Handler_Protected {
$cur_feed_title = htmlspecialchars($cur_feed_title);
- $vf_catchup_link = "(<a onclick='javascript:catchupFeedInGroup($feed_id);' href='#'>".__('mark as read')."</a>)";
+ $vf_catchup_link = "(<a class='catchup' onclick='javascript:catchupFeedInGroup($feed_id);' href='#'>".__('mark as read')."</a>)";
$has_feed_icon = feed_has_icon($feed_id);
@@ -502,17 +505,17 @@ class Feeds extends Handler_Protected {
$reply['content'] .= "<div class='cdmFeedTitle'>".
"<div style=\"float : right\">$feed_icon_img</div>".
- "<a href=\"#\" onclick=\"viewfeed($feed_id)\">".
+ "<a href=\"#\" class='title' onclick=\"viewfeed($feed_id)\">".
$line["feed_title"]."</a> $vf_catchup_link</div>";
}
}
- $expand_cdm = get_pref($this->link, 'CDM_EXPANDED');
-
$mouseover_attrs = "onmouseover='postMouseIn($id)'
onmouseout='postMouseOut($id)'";
- $reply['content'] .= "<div class=\"cdm $class\"
+ $expanded_class = $expand_cdm ? "expanded" : "";
+
+ $reply['content'] .= "<div class=\"cdm $expanded_class $class\"
id=\"RROW-$id\" $mouseover_attrs'>";
$reply['content'] .= "<div class=\"cdmHeader\">";
@@ -543,6 +546,10 @@ class Feeds extends Handler_Protected {
$reply['content'] .= $labels_str;
+ $reply['content'] .= "<span class='collapseBtn' style='display : none'>
+ <img src=\"images/collapse.png\" onclick=\"cdmCollapseArticle(event, $id)\"
+ title=\"".__("Collapse article")."\"/></span>";
+
if (!$expand_cdm)
$content_hidden = "style=\"display : none\"";
else
@@ -550,7 +557,6 @@ class Feeds extends Handler_Protected {
$reply['content'] .= "<span $excerpt_hidden
id=\"CEXC-$id\" class=\"cdmExcerpt\"> - $content_preview</span>";
-
$reply['content'] .= "</span>";
if (!get_pref($this->link, 'VFEED_GROUP_BY_FEED')) {
@@ -617,16 +623,17 @@ class Feeds extends Handler_Protected {
}
$reply['content'] .= "<span id=\"CWRAP-$id\">";
- $reply['content'] .= $line["content"];
- $reply['content'] .= "</span>";
-/* $tmp_result = db_query($this->link, "SELECT always_display_enclosures FROM
- ttrss_feeds WHERE id = ".
- (($line['feed_id'] == null) ? $line['orig_feed_id'] :
- $line['feed_id'])." AND owner_uid = ".$_SESSION["uid"]);
+// if (!$expand_cdm) {
+ $reply['content'] .= "<span id=\"CENCW-$id\" style=\"display : none\">";
+ $reply['content'] .= htmlspecialchars($line["content"]);
+ $reply['content'] .= "</span.";
- $always_display_enclosures = sql_bool_to_bool(db_fetch_result($tmp_result,
- 0, "always_display_enclosures")); */
+// } else {
+// $reply['content'] .= $line["content"];
+// }
+
+ $reply['content'] .= "</span>";
$always_display_enclosures = sql_bool_to_bool($line["always_display_enclosures"]);
@@ -639,8 +646,7 @@ class Feeds extends Handler_Protected {
$tags_str = format_tags_string($line["tags"], $id);
- $reply['content'] .= "<img src='".theme_image($this->link,
- 'images/tag.png')."' alt='Tags' title='Tags'>
+ $reply['content'] .= "<img src='images/tag.png' alt='Tags' title='Tags'>
<span id=\"ATSTR-$id\">$tags_str</span>
<a title=\"".__('Edit tags for this article')."\"
href=\"#\" onclick=\"editArticleTags($id, $feed_id, true)\">(+)</a>";
@@ -935,6 +941,5 @@ class Feeds extends Handler_Protected {
return $reply;
}
-
}
?>
diff --git a/classes/handler/public.php b/classes/handler/public.php
index 4a9b0c48e..dc1e10049 100644
--- a/classes/handler/public.php
+++ b/classes/handler/public.php
@@ -2,7 +2,7 @@
class Handler_Public extends Handler {
private function generate_syndicated_feed($owner_uid, $feed, $is_cat,
- $limit, $offset, $search, $search_mode, $match_on,
+ $limit, $offset, $search, $search_mode,
$view_mode = false, $format = 'atom') {
require_once "lib/MiniTemplator.class.php";
@@ -25,7 +25,7 @@ class Handler_Public extends Handler {
$qfh_ret = queryFeedHeadlines($this->link, $feed,
$limit, $view_mode, $is_cat, $search, $search_mode,
- $match_on, "$date_sort_field DESC", $offset, $owner_uid,
+ "$date_sort_field DESC", $offset, $owner_uid,
false, 0, false, true);
$result = $qfh_ret[0];
@@ -314,7 +314,6 @@ class Handler_Public extends Handler {
$offset = (int)db_escape_string($_REQUEST["offset"]);
$search = db_escape_string($_REQUEST["q"]);
- $match_on = db_escape_string($_REQUEST["m"]);
$search_mode = db_escape_string($_REQUEST["smode"]);
$view_mode = db_escape_string($_REQUEST["view-mode"]);
@@ -338,7 +337,7 @@ class Handler_Public extends Handler {
if ($owner_id) {
$this->generate_syndicated_feed($owner_id, $feed, $is_cat, $limit,
- $offset, $search, $search_mode, $match_on, $view_mode, $format);
+ $offset, $search, $search_mode, $view_mode, $format);
} else {
header('HTTP/1.1 403 Forbidden');
}
diff --git a/classes/pluginhost.php b/classes/pluginhost.php
index 592629881..710435ae4 100644
--- a/classes/pluginhost.php
+++ b/classes/pluginhost.php
@@ -21,6 +21,7 @@ class PluginHost {
const HOOK_RENDER_ARTICLE = 10;
const HOOK_RENDER_ARTICLE_CDM = 11;
const HOOK_FEED_FETCHED = 12;
+ const HOOK_SANITIZE = 13;
const KIND_ALL = 1;
const KIND_SYSTEM = 2;
@@ -170,7 +171,7 @@ class PluginHost {
}
function add_command($command, $description, $sender) {
- $command = "-" . str_replace("-", "_", strtolower($command));
+ $command = str_replace("-", "_", strtolower($command));
$this->commands[$command] = array("description" => $description,
"class" => $sender);
@@ -200,7 +201,7 @@ class PluginHost {
function run_commands($args) {
foreach ($this->get_commands() as $command => $data) {
- if (in_array($command, $args)) {
+ if (isset($args[$command])) {
$command = str_replace("-", "", $command);
$data["class"]->$command($args);
}
diff --git a/classes/pref/feeds.php b/classes/pref/feeds.php
index bfcc75f0d..285995dfc 100644
--- a/classes/pref/feeds.php
+++ b/classes/pref/feeds.php
@@ -613,6 +613,18 @@ class Pref_Feeds extends Handler_Protected {
name=\"always_display_enclosures\"
$checked>&nbsp;<label for=\"always_display_enclosures\">".__('Always display image attachments')."</label>";
+ $hide_images = sql_bool_to_bool(db_fetch_result($result, 0, "hide_images"));
+
+ if ($hide_images) {
+ $checked = "checked=\"1\"";
+ } else {
+ $checked = "";
+ }
+
+ print "<hr/><input dojoType=\"dijit.form.CheckBox\" type=\"checkbox\" id=\"hide_images\"
+ name=\"hide_images\"
+ $checked>&nbsp;<label for=\"hide_images\">".
+ __('Do not embed images')."</label>";
$cache_images = sql_bool_to_bool(db_fetch_result($result, 0, "cache_images"));
@@ -804,6 +816,14 @@ class Pref_Feeds extends Handler_Protected {
print "&nbsp;"; $this->batch_edit_cbox("always_display_enclosures", "always_display_enclosures_l");
+ print "<br/><input disabled=\"1\" type=\"checkbox\" id=\"hide_images\"
+ name=\"hide_images\"
+ dojoType=\"dijit.form.CheckBox\">&nbsp;<label class='insensitive' id=\"hide_images_l\"
+ for=\"hide_images\">".
+ __('Do not embed images')."</label>";
+
+ print "&nbsp;"; $this->batch_edit_cbox("hide_images", "hide_images_l");
+
print "<br/><input disabled=\"1\" type=\"checkbox\" id=\"cache_images\"
name=\"cache_images\"
dojoType=\"dijit.form.CheckBox\">&nbsp;<label class='insensitive' id=\"cache_images_l\"
@@ -856,7 +876,8 @@ class Pref_Feeds extends Handler_Protected {
db_escape_string($_POST["include_in_digest"]));
$cache_images = checkbox_to_sql_bool(
db_escape_string($_POST["cache_images"]));
-
+ $hide_images = checkbox_to_sql_bool(
+ db_escape_string($_POST["hide_images"]));
$always_display_enclosures = checkbox_to_sql_bool(
db_escape_string($_POST["always_display_enclosures"]));
@@ -887,6 +908,7 @@ class Pref_Feeds extends Handler_Protected {
auth_pass = '$auth_pass',
private = $private,
cache_images = $cache_images,
+ hide_images = $hide_images,
include_in_digest = $include_in_digest,
always_display_enclosures = $always_display_enclosures,
mark_unread_on_update = $mark_unread_on_update
@@ -952,6 +974,10 @@ class Pref_Feeds extends Handler_Protected {
$qpart = "cache_images = $cache_images";
break;
+ case "hide_images":
+ $qpart = "hide_images = $hide_images";
+ break;
+
case "cat_id":
$qpart = $category_qpart_nocomma;
break;
diff --git a/classes/pref/filters.php b/classes/pref/filters.php
index 20abae1d0..1921f2b97 100644
--- a/classes/pref/filters.php
+++ b/classes/pref/filters.php
@@ -47,7 +47,7 @@ class Pref_Filters extends Handler_Protected {
$feed_title = getFeedTitle($this->link, $feed);
$qfh_ret = queryFeedHeadlines($this->link, -4, 30, "", false, false, false,
- false, "date_entered DESC", 0, $_SESSION["uid"], $filter);
+ "date_entered DESC", 0, $_SESSION["uid"], $filter);
$result = $qfh_ret[0];
@@ -370,9 +370,9 @@ class Pref_Filters extends Handler_Protected {
$result = db_query($this->link, "SELECT description FROM ttrss_filter_types
WHERE id = ".(int)$rule["filter_type"]);
- $match_on = db_fetch_result($result, 0, "description");
+ $filter_type = db_fetch_result($result, 0, "description");
- return T_sprintf("%s on %s in %s", strip_tags($rule["reg_exp"]), $match_on, $feed);
+ return T_sprintf("%s on %s in %s", strip_tags($rule["reg_exp"]), $filter_type, $feed);
}
function printRuleName() {
diff --git a/classes/pref/prefs.php b/classes/pref/prefs.php
index 810b1e164..8b8630c82 100644
--- a/classes/pref/prefs.php
+++ b/classes/pref/prefs.php
@@ -42,6 +42,12 @@ class Pref_Prefs extends Handler_Protected {
$_SESSION["prefs_cache"] = false;
+ $boolean_prefs = explode(",", $_POST["boolean_prefs"]);
+
+ foreach ($boolean_prefs as $pref) {
+ if (!isset($_POST[$pref])) $_POST[$pref] = 'false';
+ }
+
foreach (array_keys($_POST) as $pref_name) {
$pref_name = db_escape_string($pref_name);
@@ -429,6 +435,8 @@ class Pref_Prefs extends Handler_Protected {
$active_section = "";
+ $listed_boolean_prefs = array();
+
while ($line = db_fetch_assoc($result)) {
if (in_array($line["pref_name"], $prefs_blacklist)) {
@@ -463,7 +471,10 @@ class Pref_Prefs extends Handler_Protected {
$def_value = $line["def_value"];
$help_text = $line["help_text"];
- print "<td width=\"40%\" class=\"prefName\" id=\"$pref_name\">" . __($line["short_desc"]);
+ print "<td width=\"40%\" class=\"prefName\" id=\"$pref_name\">";
+ print "<label for='CB_$pref_name'>";
+ print __($line["short_desc"]);
+ print "</label>";
if ($help_text) print "<div class=\"prefHelp\">".__($help_text)."</div>";
@@ -497,21 +508,19 @@ class Pref_Prefs extends Handler_Protected {
} else if ($type_name == "bool") {
- if ($value == "true") {
- $value = __("Yes");
- } else {
- $value = __("No");
- }
+ array_push($listed_boolean_prefs, $pref_name);
+
+ $checked = ($value == "true") ? "checked=\"checked\"" : "";
if ($pref_name == "PURGE_UNREAD_ARTICLES" && FORCE_ARTICLE_PURGE != 0) {
$disabled = "disabled=\"1\"";
- $value = __("Yes");
+ $checked = "checked=\"checked\"";
} else {
$disabled = "";
}
- print_radio($pref_name, $value, __("Yes"), array(__("Yes"), __("No")),
- $disabled);
+ print "<input type='checkbox' name='$pref_name' $checked $disabled
+ dojoType='dijit.form.CheckBox' id='CB_$pref_name' value='1'>";
} else if (array_search($pref_name, array('FRESH_ARTICLE_MAX_AGE', 'DEFAULT_ARTICLE_LIMIT',
'PURGE_OLD_DAYS', 'LONG_DATE_FORMAT', 'SHORT_DATE_FORMAT')) !== false) {
@@ -568,6 +577,10 @@ class Pref_Prefs extends Handler_Protected {
print "</table>";
+ $listed_boolean_prefs = htmlspecialchars(join(",", $listed_boolean_prefs));
+
+ print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"boolean_prefs\" value=\"$listed_boolean_prefs\">";
+
global $pluginhost;
$pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB_SECTION,
"hook_prefs_tab_section", "prefPrefsPrefsInside");
diff --git a/classes/rpc.php b/classes/rpc.php
index b297bbade..139f1fe49 100644
--- a/classes/rpc.php
+++ b/classes/rpc.php
@@ -663,7 +663,7 @@ class RPC extends Handler_Protected {
score = '$score' WHERE ref_id IN ($ids) AND owner_uid = " . $_SESSION["uid"]);
print json_encode(array("id" => $id,
- "score_pic" => theme_image($link, get_score_pic($score))));
+ "score_pic" => get_score_pic($score)));
}
function setpanelmode() {