From: Andrew Dolgov
Date: Wed, 20 Mar 2013 09:17:48 +0000 (+0400)
Subject: add a hack to prevent loading of stuff for hidden content in unexpanded combined...
X-Git-Tag: 1.7.5~78
X-Git-Url: https://git.wh0rd.org/?a=commitdiff_plain;h=f0540b598a40c03882dc1af6c4b95256bb27cb1a;p=tt-rss.git
add a hack to prevent loading of stuff for hidden content in unexpanded combined mode (refs #602)
---
diff --git a/classes/feeds.php b/classes/feeds.php
index c464303c..0568eb98 100644
--- a/classes/feeds.php
+++ b/classes/feeds.php
@@ -263,6 +263,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";
@@ -512,8 +514,6 @@ class Feeds extends Handler_Protected {
}
}
- $expand_cdm = get_pref($this->link, 'CDM_EXPANDED');
-
$mouseover_attrs = "onmouseover='postMouseIn($id)'
onmouseout='postMouseOut($id)'";
@@ -627,16 +627,17 @@ class Feeds extends Handler_Protected {
}
$reply['content'] .= "";
- $reply['content'] .= $line["content"];
- $reply['content'] .= "";
-/* $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'] .= "";
+ $reply['content'] .= htmlspecialchars($line["content"]);
+ $reply['content'] .= "";
$always_display_enclosures = sql_bool_to_bool($line["always_display_enclosures"]);
@@ -945,6 +946,5 @@ class Feeds extends Handler_Protected {
return $reply;
}
-
}
?>
diff --git a/include/functions.php b/include/functions.php
index a055d1ed..66054c23 100644
--- a/include/functions.php
+++ b/include/functions.php
@@ -2609,7 +2609,8 @@
}
if ($entry->nodeName == 'img') {
- if (get_pref($link, "STRIP_IMAGES", $owner) || $force_remove_images) {
+ if (($owner && get_pref($link, "STRIP_IMAGES", $owner)) ||
+ $force_remove_images) {
$p = $doc->createElement('p');
@@ -3633,7 +3634,7 @@
array_push($entries, $entry);
}
- if (!get_pref($link, "STRIP_IMAGES")) {
+ if ($_SESSION['uid'] && !get_pref($link, "STRIP_IMAGES")) {
if ($always_display_enclosures ||
!preg_match("/this -> "
", 'ENT_NOQUOTES');
+ // * returns 1: 'this -> "
'
+ // * example 2: htmlspecialchars_decode(""");
+ // * returns 2: '"'
+ var optTemp = 0,
+ i = 0,
+ noquotes = false;
+ if (typeof quote_style === 'undefined') {
+ quote_style = 2;
+ }
+ string = string.toString().replace(/</g, '<').replace(/>/g, '>');
+ var OPTS = {
+ 'ENT_NOQUOTES': 0,
+ 'ENT_HTML_QUOTE_SINGLE': 1,
+ 'ENT_HTML_QUOTE_DOUBLE': 2,
+ 'ENT_COMPAT': 2,
+ 'ENT_QUOTES': 3,
+ 'ENT_IGNORE': 4
+ };
+ if (quote_style === 0) {
+ noquotes = true;
+ }
+ if (typeof quote_style !== 'number') { // Allow for a single string or an array of string flags
+ quote_style = [].concat(quote_style);
+ for (i = 0; i < quote_style.length; i++) {
+ // Resolve string input to bitwise e.g. 'PATHINFO_EXTENSION' becomes 4
+ if (OPTS[quote_style[i]] === 0) {
+ noquotes = true;
+ } else if (OPTS[quote_style[i]]) {
+ optTemp = optTemp | OPTS[quote_style[i]];
+ }
+ }
+ quote_style = optTemp;
+ }
+ if (quote_style & OPTS.ENT_HTML_QUOTE_SINGLE) {
+ string = string.replace(/*39;/g, "'"); // PHP doesn't currently escape if more than one 0, but it should
+ // string = string.replace(/'|*27;/g, "'"); // This would also be useful here, but not a part of PHP
+ }
+ if (!noquotes) {
+ string = string.replace(/"/g, '"');
+ }
+ // Put this in last place to avoid escape being double-decoded
+ string = string.replace(/&/g, '&');
+
+ return string;
+}
diff --git a/js/viewfeed.js b/js/viewfeed.js
index 2555215c..4bb26187 100644
--- a/js/viewfeed.js
+++ b/js/viewfeed.js
@@ -1365,13 +1365,21 @@ function cdmExpandArticle(id) {
}
setActiveArticleId(id);
+ cdmScrollToArticleId(id, true);
elem = $("CICD-" + id);
var collapse = $$("div#RROW-" + id +
" span[class='collapseBtn']")[0];
+ var cencw = $("CENCW-" + id);
+
if (!Element.visible(elem)) {
+ if (cencw) {
+ cencw.innerHTML = htmlspecialchars_decode(cencw.innerHTML);
+ cencw.setAttribute('id', '');
+ }
+
Element.show(elem);
Element.hide("CEXC-" + id);
Element.show(collapse);