2 class MailTo extends Plugin {
7 "Share article via email (using mailto: links, invoking your mail client)",
11 function init($host) {
14 $host->add_hook($host::HOOK_ARTICLE_BUTTON, $this);
18 return file_get_contents(dirname(__FILE__) . "/init.js");
21 function hook_article_button($line) {
22 return "<img src=\"plugins/mailto/mail.png\"
23 class='tagsPic' style=\"cursor : pointer\"
24 onclick=\"mailtoArticle(".$line["id"].")\"
25 alt='Zoom' title='".__('Forward by email')."'>";
28 function emailArticle() {
30 $ids = explode(",", $_REQUEST['param']);
31 $ids_qmarks = arr_qmarks($ids);
33 require_once "lib/MiniTemplator.class.php";
35 $tpl = new MiniTemplator;
37 $tpl->readTemplateFromFile("templates/email_article_template.txt");
39 $tpl->setVariable('USER_NAME', $_SESSION["name"], true);
40 //$tpl->setVariable('USER_EMAIL', $user_email, true);
41 $tpl->setVariable('TTRSS_HOST', $_SERVER["HTTP_HOST"], true);
44 $sth = $this->pdo->prepare("SELECT DISTINCT link, content, title
45 FROM ttrss_user_entries, ttrss_entries WHERE id = ref_id AND
46 id IN ($ids_qmarks) AND owner_uid = ?");
47 $sth->execute(array_merge($ids, [$_SESSION['uid']]));
49 if (count($ids) > 1) {
50 $subject = __("[Forwarded]") . " " . __("Multiple articles");
55 while ($line = $sth->fetch()) {
58 $subject = __("[Forwarded]") . " " . htmlspecialchars($line["title"]);
60 $tpl->setVariable('ARTICLE_TITLE', strip_tags($line["title"]));
61 $tpl->setVariable('ARTICLE_URL', strip_tags($line["link"]));
63 $tpl->addBlock('article');
66 $tpl->addBlock('email');
69 $tpl->generateOutputToString($content);
71 $mailto_link = htmlspecialchars("mailto:?subject=".rawurlencode($subject).
72 "&body=".rawurlencode($content));
74 print __("Clicking the following link to invoke your mail client:");
76 print "<div class=\"tagCloudContainer\">";
77 print "<a target=\"_blank\" href=\"$mailto_link\">".
78 __("Forward selected article(s) by email.")."</a>";
81 print __("You should be able to edit the message before sending in your mail client.");
85 print "<div style='text-align : center'>";
86 print "<button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('emailArticleDlg').hide()\">".__('Close this dialog')."</button>";
92 function api_version() {