From 31a53903e635ae84ae1551d52772e75f2380b416 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sat, 6 Nov 2010 00:47:02 +0300 Subject: add article forwarding by email (closes #271) --- modules/backend-rpc.php | 75 ++++++++++++++++++++++++++++++ modules/popup-dialog.php | 116 +++++++++++++++++++++++++++++++++++++---------- 2 files changed, 166 insertions(+), 25 deletions(-) (limited to 'modules') diff --git a/modules/backend-rpc.php b/modules/backend-rpc.php index 1645db96e..55babdaa7 100644 --- a/modules/backend-rpc.php +++ b/modules/backend-rpc.php @@ -1019,6 +1019,81 @@ return; } + if ($subop == "sendEmail") { + $secretkey = $_REQUEST['secretkey']; + + print ""; + + if (DIGEST_ENABLE && $_SESSION['email_secretkey'] && + $secretkey == $_SESSION['email_secretkey']) { + + $_SESSION['email_secretkey'] = ''; + + $destination = $_REQUEST['destination']; + $subject = $_REQUEST['subject']; + $content = $_REQUEST['content']; + + $replyto = strip_tags($_SESSION['email_replyto']); + $fromname = strip_tags($_SESSION['email_fromname']); + + $mail = new PHPMailer(); + + $mail->PluginDir = "lib/phpmailer/"; + $mail->SetLanguage("en", "lib/phpmailer/language/"); + + $mail->CharSet = "UTF-8"; + + $mail->From = $replyto; + $mail->FromName = $fromname; + $mail->AddAddress($destination); + + if (DIGEST_SMTP_HOST) { + $mail->Host = DIGEST_SMTP_HOST; + $mail->Mailer = "smtp"; + $mail->SMTPAuth = DIGEST_SMTP_LOGIN != ''; + $mail->Username = DIGEST_SMTP_LOGIN; + $mail->Password = DIGEST_SMTP_PASSWORD; + } + + $mail->IsHTML(false); + $mail->Subject = $subject; + $mail->Body = $content; + + $rc = $mail->Send(); + + if (!$rc) { + print "ErrorInfo . "]]>"; + } else { + save_email_address($link, db_escape_string($destination)); + print "OK"; + } + + } else { + print "Not authorized."; + } + + print ""; + + return; + } + + if ($subop == "completeEmails") { + + $search = db_escape_string($_REQUEST["search"]); + + print ""; + + return; + } + print "Unknown method: $subop"; } ?> diff --git a/modules/popup-dialog.php b/modules/popup-dialog.php index 4d68fb971..fb1921291 100644 --- a/modules/popup-dialog.php +++ b/modules/popup-dialog.php @@ -279,7 +279,7 @@ print ""; + name=\"feed\" id=\"feed_url\">"; print "
"; @@ -666,47 +666,113 @@ return; } -/* if ($id == "offlineDownload") { - print "
".__('Download articles')."
"; + if ($id == "emailArticle") { + + print "
".__('Forward article by email')."
"; print "
"; - print "
"; + print ""; - print "
".__("Download")."
"; + $secretkey = sha1(make_password(10)); - print "
"; + $_SESSION['email_secretkey'] = $secretkey; - $amount = array( - 50 => 50, - 100 => 100, - 250 => 250, - 500 => 500); + print ""; + print ""; + print ""; - print_select_hash("amount", 50, $amount); + require_once "lib/MiniTemplator.class.php"; - print " " . __("latest articles for offline reading."); + $tpl = new MiniTemplator; + $tpl_t = new MiniTemplator; - print "
"; + $tpl->readTemplateFromFile("templates/email_article_template.txt"); - print ""; - print ""; + $result = db_query($link, "SELECT link, content, title + FROM ttrss_user_entries, ttrss_entries WHERE id = ref_id AND + id = '$param' AND owner_uid = " . $_SESSION["uid"]); - print "
"; + $line = db_fetch_assoc($result); + + $subject = htmlspecialchars(__("[Forwarded]") . " " . $line["title"]); + + $tpl->setVariable('ARTICLE_TITLE', strip_tags($line["title"])); + +/* $tpl->setVariable('ARTICLE_EXCERPT', + truncate_string(strip_tags($line["content"]), 200)); */ + + $tpl->setVariable('ARTICLE_URL', strip_tags($line["link"])); + + $result = db_query($link, "SELECT email FROM ttrss_users WHERE + id = " . $_SESSION["uid"]); + + $user_email = htmlspecialchars(db_fetch_result($result, 0, "email")); + $user_name = htmlspecialchars($_SESSION["name"]); + + //print ""; + //print ""; + + $_SESSION['email_replyto'] = $user_email; + $_SESSION['email_fromname'] = $user_name; + + $tpl->setVariable('USER_NAME', $_SESSION["name"]); + $tpl->setVariable('USER_EMAIL', $user_email); + $tpl->setVariable('TTRSS_HOST', $_SERVER["HTTP_HOST"]); + + $tpl->addBlock('email'); + + $content = ""; + $tpl->generateOutputToString($content); + + print "
"; + + print __('From:'); + + print ""; + + print "\">"; + + print "
"; + + print __('To:'); + + print ""; + + print ""; + + print "
"; + + print "
"; + + print __('Subject:'); + + print ""; + + print ""; + + print "
"; + + print ""; print "
"; - print "
- -
"; + print "
"; + + print " "; + print ""; print "
"; return; - } */ - + } print "
Internal Error
-- cgit v1.2.3