add a hack to prevent loading of stuff for hidden content in unexpanded combined mode (refs #602)

master
Andrew Dolgov 12 years ago
parent 81153e6b8b
commit f0540b598a

@ -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'] .= "<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\">";
$reply['content'] .= htmlspecialchars($line["content"]);
$reply['content'] .= "</span.";
} else {
$reply['content'] .= $line["content"];
}
$always_display_enclosures = sql_bool_to_bool(db_fetch_result($tmp_result,
0, "always_display_enclosures")); */
$reply['content'] .= "</span>";
$always_display_enclosures = sql_bool_to_bool($line["always_display_enclosures"]);
@ -945,6 +946,5 @@ class Feeds extends Handler_Protected {
return $reply;
}
}
?>

@ -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("/<img/i", $article_content)) {

@ -1913,3 +1913,65 @@ function helpDialog(topic) {
}
}
function htmlspecialchars_decode (string, quote_style) {
// http://kevin.vanzonneveld.net
// + original by: Mirek Slugen
// + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// + bugfixed by: Mateusz "loonquawl" Zalega
// + input by: ReverseSyntax
// + input by: Slawomir Kaniecki
// + input by: Scott Cariss
// + input by: Francois
// + bugfixed by: Onno Marsman
// + revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// + bugfixed by: Brett Zamir (http://brett-zamir.me)
// + input by: Ratheous
// + input by: Mailfaker (http://www.weedem.fr/)
// + reimplemented by: Brett Zamir (http://brett-zamir.me)
// + bugfixed by: Brett Zamir (http://brett-zamir.me)
// * example 1: htmlspecialchars_decode("<p>this -&gt; &quot;</p>", 'ENT_NOQUOTES');
// * returns 1: '<p>this -> &quot;</p>'
// * example 2: htmlspecialchars_decode("&amp;quot;");
// * returns 2: '&quot;'
var optTemp = 0,
i = 0,
noquotes = false;
if (typeof quote_style === 'undefined') {
quote_style = 2;
}
string = string.toString().replace(/&lt;/g, '<').replace(/&gt;/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(/&#0*39;/g, "'"); // PHP doesn't currently escape if more than one 0, but it should
// string = string.replace(/&apos;|&#x0*27;/g, "'"); // This would also be useful here, but not a part of PHP
}
if (!noquotes) {
string = string.replace(/&quot;/g, '"');
}
// Put this in last place to avoid escape being double-decoded
string = string.replace(/&amp;/g, '&');
return string;
}

@ -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);

Loading…
Cancel
Save