diff options
-rw-r--r-- | classes/feeds.php | 5 | ||||
-rw-r--r-- | js/functions.js | 9 | ||||
-rw-r--r-- | js/viewfeed.js | 17 |
3 files changed, 27 insertions, 4 deletions
diff --git a/classes/feeds.php b/classes/feeds.php index 0c9812479..23c9e783f 100644 --- a/classes/feeds.php +++ b/classes/feeds.php @@ -378,8 +378,7 @@ class Feeds extends Protected_Handler { $updated_fmt = make_local_datetime($this->link, $line["updated_noms"], false);
if (get_pref($this->link, 'SHOW_CONTENT_PREVIEW')) {
- $content_preview = truncate_string(strip_tags($line["content_preview"]),
- 100);
+ $content_preview = strip_tags($line["content_preview"]);
}
$score = $line["score"];
@@ -458,7 +457,7 @@ class Feeds extends Protected_Handler { $reply['content'] .= "<a id=\"RTITLE-$id\"
href=\"" . htmlspecialchars($line["link"]) . "\"
onclick=\"\">" .
- truncate_string($line["title"], 200);
+ $line["title"];
if (get_pref($this->link, 'SHOW_CONTENT_PREVIEW')) {
if ($content_preview) {
diff --git a/js/functions.js b/js/functions.js index b2d79dc56..997d55a55 100644 --- a/js/functions.js +++ b/js/functions.js @@ -1718,3 +1718,12 @@ function get_radio_checked(radioObj) { } return(""); } + +function clamp_element(elem, height) { + if (elem && elem.offsetHeight > height) { + while (elem.offsetHeight > height) + elem.innerHTML = cp.innerHTML.substring(0, elem.innerHTML.length - 50); + + elem.innerHTML += "…"; + } +} diff --git a/js/viewfeed.js b/js/viewfeed.js index 92a610f8d..2e8301640 100644 --- a/js/viewfeed.js +++ b/js/viewfeed.js @@ -81,6 +81,10 @@ function headlines_callback2(transport, offset, background, infscroll_req) { reply['headlines']['toolbar']); $$("#headlines-frame > div[id*=RROW]").each(function(row) { + cp = row.getElementsByClassName("contentPreview")[0]; + + clamp_element(cp, 50); + if ($$("#headlines-frame DIV[id="+row.id+"]").length > 1) { row.parentNode.removeChild(row); } @@ -136,8 +140,13 @@ function headlines_callback2(transport, offset, background, infscroll_req) { $$("#headlines-frame > div[id*=RROW]").each( function(child) { - if (!Element.visible(child)) + if (!Element.visible(child)) { new Effect.Appear(child, { duration : 0.5 }); + + cp = child.getElementsByClassName("contentPreview")[0]; + + clamp_element(cp, 50); + } }); } else { @@ -2047,6 +2056,12 @@ function render_local_headlines(feed, is_cat, obj) { setActiveFeedId(feed, is_cat); initHeadlinesMenu(); + + $$("#headlines-frame > div[id*=RROW]").each(function(row) { + cp = row.getElementsByClassName("contentPreview")[0]; + clamp_element(cp, 50); + }); + precache_headlines(); } catch (e) { |