X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=plugins%2Fmail%2Finit.php;h=1b31a220b06b82aa828fa23e0300709ceb6e57df;hb=57932e183745bada9c6183056597cb5276f68d10;hp=2897068aa5635598f85c75428cefe9b392be784e;hpb=a42c55f02b7e313ab61bf826794d0888f2dceae1;p=tt-rss.git diff --git a/plugins/mail/init.php b/plugins/mail/init.php index 2897068a..1b31a220 100644 --- a/plugins/mail/init.php +++ b/plugins/mail/init.php @@ -1,6 +1,7 @@ host = $host; $host->add_hook($host::HOOK_ARTICLE_BUTTON, $this); + $host->add_hook($host::HOOK_PREFS_TAB, $this); } function get_js() { return file_get_contents(dirname(__FILE__) . "/mail.js"); } + function save() { + $addresslist = $_POST["addresslist"]; + + $this->host->set($this, "addresslist", $addresslist); + + echo __("Mail addresses saved."); + } + + function hook_prefs_tab($args) { + if ($args != "prefPrefs") return; + + print "
"; + + print "

" . __("You can set predefined email addressed here (comma-separated list):") . "

"; + + print "
"; + + print ""; + + print_hidden("op", "pluginhandler"); + print_hidden("method", "save"); + print_hidden("plugin", "mail"); + + $addresslist = $this->host->get($this, "addresslist"); + + print ""; + + print "

"; + + print "

"; + + print "
"; + } + function hook_article_button($line) { return ""; - print ""; - print ""; + print_hidden("op", "pluginhandler"); + print_hidden("plugin", "mail"); + print_hidden("method", "sendEmail"); - $result = db_query("SELECT email, full_name FROM ttrss_users WHERE - id = " . $_SESSION["uid"]); + $sth = $this->pdo->prepare("SELECT email, full_name FROM ttrss_users WHERE + id = ?"); + $sth->execute([$_SESSION['uid']]); - $user_email = htmlspecialchars(db_fetch_result($result, 0, "email")); - $user_name = htmlspecialchars(db_fetch_result($result, 0, "full_name")); + if ($row = $sth->fetch()) { + $user_email = htmlspecialchars($row['email']); + $user_name = htmlspecialchars($row['full_name']); + } if (!$user_name) $user_name = $_SESSION['name']; - print ""; - print ""; + print_hidden("from_email", "$user_email"); + print_hidden("from_name", "$user_name"); require_once "lib/MiniTemplator.class.php"; $tpl = new MiniTemplator; - $tpl_t = new MiniTemplator; $tpl->readTemplateFromFile("templates/email_article_template.txt"); @@ -56,20 +109,26 @@ class Mail extends Plugin { $tpl->setVariable('USER_EMAIL', $user_email, true); $tpl->setVariable('TTRSS_HOST', $_SERVER["HTTP_HOST"], true); - $result = db_query("SELECT link, content, title + $sth = $this->pdo->prepare("SELECT DISTINCT link, content, title, note FROM ttrss_user_entries, ttrss_entries WHERE id = ref_id AND - id IN ($param) AND owner_uid = " . $_SESSION["uid"]); + id IN ($ids_qmarks) AND owner_uid = ?"); + $sth->execute(array_merge($ids, [$_SESSION['uid']])); - if (db_num_rows($result) > 1) { + if (count($ids) > 1) { $subject = __("[Forwarded]") . " " . __("Multiple articles"); } - while ($line = db_fetch_assoc($result)) { + while ($line = $sth->fetch()) { if (!$subject) $subject = __("[Forwarded]") . " " . htmlspecialchars($line["title"]); $tpl->setVariable('ARTICLE_TITLE', strip_tags($line["title"])); + $tnote = strip_tags($line["note"]); + if( $tnote != ''){ + $tpl->setVariable('ARTICLE_NOTE', $tnote, true); + $tpl->addBlock('note'); + } $tpl->setVariable('ARTICLE_URL', strip_tags($line["link"])); $tpl->addBlock('article'); @@ -82,25 +141,20 @@ class Mail extends Plugin { print ""; - print "
"; - print __('From:'); - - print ""; - - print "\">"; - - print "
"; + $addresslist = explode(",", $this->host->get($this, "addresslist")); print __('To:'); print ""; - print ""; + name=\"destination\" id=\"emailArticleDlg_destination\">"; */ - print "
"; + print_select("destination", "", $addresslist, 'style="width: 30em" dojoType="dijit.form.ComboBox"'); + +/* print "
"; */ print "
"; @@ -114,7 +168,8 @@ class Mail extends Plugin { print "
"; print "
"; @@ -128,34 +183,45 @@ class Mail extends Plugin { } function sendEmail() { - require_once 'classes/ttrssmailer.php'; - $reply = array(); - $mail = new ttrssMailer(); - - $mail->From = strip_tags($_REQUEST['from_email']); - $mail->FromName = strip_tags($_REQUEST['from_name']); - $mail->AddAddress($_REQUEST['destination']); + /*$mail->AddReplyTo(strip_tags($_REQUEST['from_email']), + strip_tags($_REQUEST['from_name'])); + //$mail->AddAddress($_REQUEST['destination']); + $addresses = explode(';', $_REQUEST['destination']); + foreach($addresses as $nextaddr) + $mail->AddAddress($nextaddr); $mail->IsHTML(false); $mail->Subject = $_REQUEST['subject']; $mail->Body = $_REQUEST['content']; - $rc = $mail->Send(); + $rc = $mail->Send(); */ + + $to = $_REQUEST["destination"]; + $subject = strip_tags($_REQUEST["subject"]); + $message = strip_tags($_REQUEST["content"]); + $from = strip_tags($_REQUEST["from_email"]); + + $mailer = new Mailer(); + + $mailer->mail(["to" => $to, + "headers" => ["Reply-To: $from"], + "subject" => $subject, + "message" => $message]); if (!$rc) { - $reply['error'] = $mail->ErrorInfo; + $reply['error'] = $mailer->error(); } else { - save_email_address(db_escape_string($destination)); + //save_email_address($destination); $reply['message'] = "UPDATE_COUNTERS"; } print json_encode($reply); } - function completeEmails() { - $search = db_escape_string($_REQUEST["search"]); + /* function completeEmails() { + $search = $_REQUEST["search"]; print ""; - } + } */ + function api_version() { + return 2; + } } -?>