From c8c9a26f3071edc2f0307336b6dd6062e4351773 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Fri, 30 Nov 2018 13:26:41 +0300 Subject: [PATCH] move to simpler CDM handling of encoded content (instead of CENCW... etc) --- classes/feeds.php | 13 ++++--------- js/viewfeed.js | 28 ++++++++++++++++------------ 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/classes/feeds.php b/classes/feeds.php index cf9ca64c..0c1db62b 100755 --- a/classes/feeds.php +++ b/classes/feeds.php @@ -499,8 +499,10 @@ class Feeds extends Handler_Protected { $expanded_class = $expand_cdm ? "expanded" : "expandable"; - $tmp_content = "
"; + $content_encoded = htmlspecialchars(json_encode($line["content"])); + + $tmp_content = "
"; $tmp_content .= "
"; $tmp_content .= "
"; @@ -616,14 +618,7 @@ class Feeds extends Handler_Protected { } } - $tmp_content .= ""; - $tmp_content .= ""; - $tmp_content .= htmlspecialchars($line["content"]); - $tmp_content .= ""; - $tmp_content .= ""; - $tmp_content .= "
"; //cdmContentInner - $tmp_content .= "
"; $always_display_enclosures = $line["always_display_enclosures"]; diff --git a/js/viewfeed.js b/js/viewfeed.js index ed6e3642..a24116e8 100755 --- a/js/viewfeed.js +++ b/js/viewfeed.js @@ -1018,24 +1018,28 @@ function postMouseOut(id) { function unpackVisibleHeadlines() { if (!isCdmMode() || !getInitParam("cdm_expanded")) return; - $$("#headlines-frame span.cencw[id]").each( - function (child) { - const row = $("RROW-" + child.id.replace("CENCW-", "")); + $$("#headlines-frame div[id*=RROW][data-content]").each((row) => { + //console.log('checking', row.id); - if (row && row.offsetTop <= $("headlines-frame").scrollTop + - $("headlines-frame").offsetHeight) { + if (row.offsetTop <= $("headlines-frame").scrollTop + $("headlines-frame").offsetHeight) { + console.log("unpacking: " + row.id); - //console.log("unpacking: " + child.id); + let content; - child.innerHTML = htmlspecialchars_decode(child.innerHTML); - child.removeAttribute('id'); + try { + content = JSON.parse(row.getAttribute("data-content")); + } catch (e) { + content = "Error decoding content: " + row.getAttribute("data-content"); + } - PluginHost.run(PluginHost.HOOK_ARTICLE_RENDERED_CDM, row); + row.select(".cdmContentInner")[0].innerHTML = content; + row.removeAttribute("data-content"); - Element.show(child); - } + PluginHost.run(PluginHost.HOOK_ARTICLE_RENDERED_CDM, row); + } else { + throw $break; } - ); + }); } function headlines_scroll_handler(e) { -- 2.39.2