}
}
- function truncate_string($str, $max_len) {
+ function truncate_string($str, $max_len, $suffix = '…') {
if (mb_strlen($str, "utf-8") > $max_len - 3) {
- return mb_substr($str, 0, $max_len, "utf-8") . "…";
+ return mb_substr($str, 0, $max_len, "utf-8") . $suffix;
} else {
return $str;
}
print "<div id=\"PTITLE-$id\" style=\"display : none\">" .
truncate_string(strip_tags($line['title']), 15) . "</div>";
+ $tweet_title = htmlspecialchars(
+ truncate_string(strip_tags($line['title']), 100, '...'));
+
+ $tweet_link = htmlspecialchars($line['link']);
+
+ print "<span id=\"TWEETINFO-$id\" style=\"display : none\">";
+ print json_encode(array("title" => $tweet_title, "link" => $tweet_link));
+ print "</span>";
+
print "<div class=\"postReply\" id=\"POST-$id\">";
/* print "<div dojoType=\"dijit.Menu\" style=\"display: none;\"
alt='Zoom' title='".__('Forward by email')."'>";
}
+ if (ENABLE_TWEET_BUTTON) {
+ print "<img src=\"".theme_image($link, 'images/art-tweet.png')."\"
+ class='tagsPic' style=\"cursor : pointer\"
+ onclick=\"tweetArticle($id)\"
+ alt='Zoom' title='".__('Share on Twitter')."'>";
+ }
+
print "<img src=\"".theme_image($link, 'images/digest_checkbox.png')."\"
class='tagsPic' style=\"cursor : pointer\"
onclick=\"closeArticlePanel($id)\"
print_article_enclosures($link, $id, $always_display_enclosures,
$article_content);
- $short_title = truncate_string(strip_tags($line['title']), 90);
-
- print "<br/><a href=\"http://twitter.com/share\"
- class=\"twitter-share-button\"
- data-text=\"$short_title\"
- data-url=\"".htmlspecialchars($line["link"])."\"
- data-count=\"horizontal\">Tweet</a>";
-
print "</div>";
print "</div>";
$short_title = truncate_string(
strip_tags($line['title']), 90);
- print "<br/><a href=\"http://twitter.com/share\"
- class=\"twitter-share-button\"
- data-text=\"$short_title\"
- data-url=\"".htmlspecialchars($line["link"])."\"
- data-count=\"horizontal\">Tweet</a>";
+ $tweet_title = htmlspecialchars(
+ truncate_string(strip_tags($line['title']), 100, '...'));
+
+ $tweet_link = htmlspecialchars($line['link']);
+
+ print "<span id=\"TWEETINFO-$id\" style=\"display : none\">";
+ print json_encode(array("title" => $tweet_title, "link" => $tweet_link));
+ print "</span>";
print "</div>";
alt='Zoom'
title='".__('Open article in new tab')."'>";
+ $note_escaped = htmlspecialchars($line['note'], ENT_QUOTES);
+
+ print "<img src=\"images/art-pub-note.png\"
+ style=\"cursor : pointer\" style=\"cursor : pointer\"
+ onclick=\"publishWithNote($id, '$note_escaped')\"
+ alt='PubNote' title='".__('Publish article with a note')."'>";
+
if (DIGEST_ENABLE) {
print "<img src=\"".theme_image($link, 'images/art-email.png')."\"
style=\"cursor : pointer\"
alt='Zoom' title='".__('Forward by email')."'>";
}
- $note_escaped = htmlspecialchars($line['note'], ENT_QUOTES);
-
- print "<img src=\"images/art-pub-note.png\"
- style=\"cursor : pointer\" style=\"cursor : pointer\"
- onclick=\"publishWithNote($id, '$note_escaped')\"
- alt='PubNote' title='".__('Publish article with a note')."'>";
+ if (ENABLE_TWEET_BUTTON) {
+ print "<img src=\"".theme_image($link, 'images/art-tweet.png')."\"
+ class='tagsPic' style=\"cursor : pointer\"
+ onclick=\"tweetArticle($id)\"
+ alt='Zoom' title='".__('Share on Twitter')."'>";
+ }
print "<img src=\"images/digest_checkbox.png\"
style=\"cursor : pointer\" style=\"cursor : pointer\"
dijit.byId("headlines-toolbar").attr('content',
headlines_toolbar.firstChild.nodeValue);
- $$("#headlines-frame a.twitter-share-button").each(
- function(btn) { var tbtn = new twttr.TweetButton(btn);
- tbtn.render(); });
-
initHeadlinesMenu();
var cache_prefix = "";
c.attr('content', c.attr('content') +
headlines_content.firstChild.nodeValue);
- $$("#headlines-frame a.twitter-share-button").each(
- function(btn) { var tbtn = new twttr.TweetButton(btn);
- tbtn.render(); });
-
console.log("restore selected ids: " + ids);
for (var i = 0; i < ids.length; i++) {
correctHeadlinesOffset(getActiveArticleId());
- $$("#content-insert a.twitter-share-button").each(
- function(btn) { var tbtn = new twttr.TweetButton(btn); tbtn.render(); });
-
} catch (e) {
exception_error("render_article", e);
}
dijit.byId("content-tabs").addChild(article_pane);
- $$("#ATAB-"+id+" a.twitter-share-button").each(
- function(btn) { var tbtn = new twttr.TweetButton(btn); tbtn.render(); });
-
if (!event || !event.shiftKey)
dijit.byId("content-tabs").selectChild(article_pane);
dijit.byId("content-tabs").addChild(article_pane);
- $$("#ATAB-"+id+" a.twitter-share-button").each(
- function(btn) { var tbtn = new twttr.TweetButton(btn);
- tbtn.render(); });
-
if (!event || !event.shiftKey)
dijit.byId("content-tabs").selectChild(article_pane);
exception_error("initHeadlinesMenu", e);
}
}
+
+function tweetArticle(id) {
+ try {
+ var d = new Date();
+ var ts = d.getTime();
+
+ var ti = JSON.parse($("TWEETINFO-" + id).innerHTML);
+
+ var share_url = "http://twitter.com/share?_=" + ts +
+ "&text=" + param_escape(ti.title) +
+ "&url=" + param_escape(ti.link);
+
+ window.open(share_url, 'ttrss_tweet',
+ "status=0,toolbar=0,location=0,width=500,height=400,scrollbars=1,menubar=0");
+
+
+ } catch (e) {
+ exception_error("tweetArticle", e);
+ }
+}