From daf3339606028a6d418645cf0533fd4dbf222cda Mon Sep 17 00:00:00 2001 From: dmolavi Date: Fri, 21 Jan 2011 15:43:27 -0500 Subject: [PATCH] Ecard now allows admins to give user the option to send a non-watermarked version of the image. --- 3.0/modules/ecard/controllers/admin_ecard.php | 11 ++++++++-- 3.0/modules/ecard/controllers/ecard.php | 22 +++++++++++++++---- 3.0/modules/ecard/helpers/ecard.php | 8 ++++++- 3.0/modules/ecard/helpers/ecard_installer.php | 6 +++-- 3.0/modules/ecard/module.info | 2 +- 3.1/modules/ecard/controllers/admin_ecard.php | 11 ++++++++-- 3.1/modules/ecard/controllers/ecard.php | 22 +++++++++++++++---- 3.1/modules/ecard/helpers/ecard.php | 8 ++++++- 3.1/modules/ecard/helpers/ecard_installer.php | 6 +++-- 3.1/modules/ecard/module.info | 2 +- 10 files changed, 78 insertions(+), 20 deletions(-) diff --git a/3.0/modules/ecard/controllers/admin_ecard.php b/3.0/modules/ecard/controllers/admin_ecard.php index 68b53c3f..e6c5bb12 100644 --- a/3.0/modules/ecard/controllers/admin_ecard.php +++ b/3.0/modules/ecard/controllers/admin_ecard.php @@ -30,7 +30,8 @@ class Admin_ecard_Controller extends Admin_Controller { access::verify_csrf(); $form = $this->_get_admin_form(); if ($form->validate()) { - module::set_var("ecard", "sender", $form->ecard->sender->value); + module::set_var("ecard","send_plain",$form->ecard->send_plain->value); + module::set_var("ecard", "sender", $form->ecard->sender->value); module::set_var("ecard", "bcc", $form->ecard->bcc->value); module::set_var("ecard", "subject", $form->ecard->subject->value); module::set_var("ecard", "message", $form->ecard->message->value); @@ -60,7 +61,13 @@ class Admin_ecard_Controller extends Admin_Controller { $ecard_settings->input("max_length") ->label(t("Maximum message length")) ->value(module::get_var("ecard","max_length")); - $ecard_settings->dropdown("access_permissions") + if(module::is_active("watermark")) { + $ecard_settings->checkbox("send_plain") + ->label(t("Allow users to send non-watermarked versions")) + ->value(true) + ->checked(module::get_var("ecard","send_plain")); + } + $ecard_settings->dropdown("access_permissions") ->label(t("Who can send eCards?")) ->options(array("everybody" => t("Everybody"), "registered_users" => t("Only registered users"))) diff --git a/3.0/modules/ecard/controllers/ecard.php b/3.0/modules/ecard/controllers/ecard.php index fa55e477..097815e0 100644 --- a/3.0/modules/ecard/controllers/ecard.php +++ b/3.0/modules/ecard/controllers/ecard.php @@ -58,14 +58,28 @@ class Ecard_Controller extends Controller { require_once(MODPATH. "ecard/lib/mime.php"); $mime = new Mail_mime("\n"); $mime->setHTMLBody($v->render()); - if($form->send_ecard->send_thumbnail->checked == true) { - $mime->addHTMLImage($item->thumb_path(),$item->mime_type,$item->name); - } else { - $mime->addHTMLImage($item->resize_path(),$item->mime_type,$item->name); + if($form->send_ecard->send_fresh->checked == true) { + $tmpfile = tempnam(TMPPATH, "clean"); + if($form->send_ecard->send_thumbnail->checked == true) { + $options = array("width" => module::get_var("gallery", "thumb_size"), "height" => module::get_var("gallery", "thumb_size"), "master" => Image::AUTO); + gallery_graphics::resize($item->file_path(), $tmpfile, $options); + $mime->addHTMLImage($tmpfile,$item->mime_type,$item->name); + } else { + $options = array("width" => module::get_var("gallery", "resize_size"), "height" => module::get_var("gallery", "resize_size"), "master" => Image::AUTO); + gallery_graphics::resize($item->file_path(), $tmpfile, $options); + $mime->addHTMLImage($tmpfile,$item->mime_type,$item->name); + } + } else { + if($form->send_ecard->send_thumbnail->checked == true) { + $mime->addHTMLImage($item->thumb_path(),$item->mime_type,$item->name); + } else { + $mime->addHTMLImage($item->resize_path(),$item->mime_type,$item->name); + } } $body = $mime->get(array('html_charset' => 'UTF-8', 'text_charset' => 'UTF-8','text_encoding' => '8bit','head_charset' => 'UTF-8')); self::_notify($headers['to'], $headers['from'], $headers['subject'], $item, $body, $mime->headers(), $bcc, $cc); } + unlink($tmpfile); message::success("eCard successfully sent"); json::reply(array("result" => "success")); } else { diff --git a/3.0/modules/ecard/helpers/ecard.php b/3.0/modules/ecard/helpers/ecard.php index bb611178..e369517a 100644 --- a/3.0/modules/ecard/helpers/ecard.php +++ b/3.0/modules/ecard/helpers/ecard.php @@ -57,7 +57,13 @@ class ecard_Core { ->label(t("Send thumbnail image, instead of resized image.")) ->value(true) ->checked(false); - $group->hidden("item_id")->value($item_id); + if(module::get_var("ecard","send_plain") == true && module::is_active("watermark")) { + $group->checkbox("send_fresh") + ->label(t("Send non-watermarked image.")) + ->value(true) + ->checked(false); + } + $group->hidden("item_id")->value($item_id); module::event("ecard_send_form", $form); module::event("captcha_protect_form", $form); $group->submit("")->value(t("Send"))->class("ui-state-default ui-corner-all"); diff --git a/3.0/modules/ecard/helpers/ecard_installer.php b/3.0/modules/ecard/helpers/ecard_installer.php index 317384a7..2eac495e 100644 --- a/3.0/modules/ecard/helpers/ecard_installer.php +++ b/3.0/modules/ecard/helpers/ecard_installer.php @@ -19,7 +19,7 @@ */ class ecard_installer { private static function getversion() { - return 10; + return 11; } private static function setversion() { @@ -27,6 +27,7 @@ class ecard_installer { } static function install() { + module::set_var("ecard","send_plain",false); module::set_var("ecard", "subject", "You have been sent an eCard"); module::set_var("ecard", "message", "Hello, \r\n%fromname has sent you an eCard. " . @@ -38,7 +39,8 @@ class ecard_installer { } static function upgrade($version) { - if($version <= 8) { + if($version <= 10) { + module::set_var("ecard","send_plain",false); module::set_var("ecard", "message", "Hello, \r\n%fromname has sent you an eCard. " . "Click the image to be taken to the gallery."); diff --git a/3.0/modules/ecard/module.info b/3.0/modules/ecard/module.info index b299660e..d5b27c70 100644 --- a/3.0/modules/ecard/module.info +++ b/3.0/modules/ecard/module.info @@ -1,3 +1,3 @@ name = "E-Card" description = "Send a photo as a postcard" -version = 10 +version = 11 diff --git a/3.1/modules/ecard/controllers/admin_ecard.php b/3.1/modules/ecard/controllers/admin_ecard.php index 68b53c3f..e6c5bb12 100644 --- a/3.1/modules/ecard/controllers/admin_ecard.php +++ b/3.1/modules/ecard/controllers/admin_ecard.php @@ -30,7 +30,8 @@ class Admin_ecard_Controller extends Admin_Controller { access::verify_csrf(); $form = $this->_get_admin_form(); if ($form->validate()) { - module::set_var("ecard", "sender", $form->ecard->sender->value); + module::set_var("ecard","send_plain",$form->ecard->send_plain->value); + module::set_var("ecard", "sender", $form->ecard->sender->value); module::set_var("ecard", "bcc", $form->ecard->bcc->value); module::set_var("ecard", "subject", $form->ecard->subject->value); module::set_var("ecard", "message", $form->ecard->message->value); @@ -60,7 +61,13 @@ class Admin_ecard_Controller extends Admin_Controller { $ecard_settings->input("max_length") ->label(t("Maximum message length")) ->value(module::get_var("ecard","max_length")); - $ecard_settings->dropdown("access_permissions") + if(module::is_active("watermark")) { + $ecard_settings->checkbox("send_plain") + ->label(t("Allow users to send non-watermarked versions")) + ->value(true) + ->checked(module::get_var("ecard","send_plain")); + } + $ecard_settings->dropdown("access_permissions") ->label(t("Who can send eCards?")) ->options(array("everybody" => t("Everybody"), "registered_users" => t("Only registered users"))) diff --git a/3.1/modules/ecard/controllers/ecard.php b/3.1/modules/ecard/controllers/ecard.php index fa55e477..097815e0 100644 --- a/3.1/modules/ecard/controllers/ecard.php +++ b/3.1/modules/ecard/controllers/ecard.php @@ -58,14 +58,28 @@ class Ecard_Controller extends Controller { require_once(MODPATH. "ecard/lib/mime.php"); $mime = new Mail_mime("\n"); $mime->setHTMLBody($v->render()); - if($form->send_ecard->send_thumbnail->checked == true) { - $mime->addHTMLImage($item->thumb_path(),$item->mime_type,$item->name); - } else { - $mime->addHTMLImage($item->resize_path(),$item->mime_type,$item->name); + if($form->send_ecard->send_fresh->checked == true) { + $tmpfile = tempnam(TMPPATH, "clean"); + if($form->send_ecard->send_thumbnail->checked == true) { + $options = array("width" => module::get_var("gallery", "thumb_size"), "height" => module::get_var("gallery", "thumb_size"), "master" => Image::AUTO); + gallery_graphics::resize($item->file_path(), $tmpfile, $options); + $mime->addHTMLImage($tmpfile,$item->mime_type,$item->name); + } else { + $options = array("width" => module::get_var("gallery", "resize_size"), "height" => module::get_var("gallery", "resize_size"), "master" => Image::AUTO); + gallery_graphics::resize($item->file_path(), $tmpfile, $options); + $mime->addHTMLImage($tmpfile,$item->mime_type,$item->name); + } + } else { + if($form->send_ecard->send_thumbnail->checked == true) { + $mime->addHTMLImage($item->thumb_path(),$item->mime_type,$item->name); + } else { + $mime->addHTMLImage($item->resize_path(),$item->mime_type,$item->name); + } } $body = $mime->get(array('html_charset' => 'UTF-8', 'text_charset' => 'UTF-8','text_encoding' => '8bit','head_charset' => 'UTF-8')); self::_notify($headers['to'], $headers['from'], $headers['subject'], $item, $body, $mime->headers(), $bcc, $cc); } + unlink($tmpfile); message::success("eCard successfully sent"); json::reply(array("result" => "success")); } else { diff --git a/3.1/modules/ecard/helpers/ecard.php b/3.1/modules/ecard/helpers/ecard.php index bb611178..e369517a 100644 --- a/3.1/modules/ecard/helpers/ecard.php +++ b/3.1/modules/ecard/helpers/ecard.php @@ -57,7 +57,13 @@ class ecard_Core { ->label(t("Send thumbnail image, instead of resized image.")) ->value(true) ->checked(false); - $group->hidden("item_id")->value($item_id); + if(module::get_var("ecard","send_plain") == true && module::is_active("watermark")) { + $group->checkbox("send_fresh") + ->label(t("Send non-watermarked image.")) + ->value(true) + ->checked(false); + } + $group->hidden("item_id")->value($item_id); module::event("ecard_send_form", $form); module::event("captcha_protect_form", $form); $group->submit("")->value(t("Send"))->class("ui-state-default ui-corner-all"); diff --git a/3.1/modules/ecard/helpers/ecard_installer.php b/3.1/modules/ecard/helpers/ecard_installer.php index 317384a7..2eac495e 100644 --- a/3.1/modules/ecard/helpers/ecard_installer.php +++ b/3.1/modules/ecard/helpers/ecard_installer.php @@ -19,7 +19,7 @@ */ class ecard_installer { private static function getversion() { - return 10; + return 11; } private static function setversion() { @@ -27,6 +27,7 @@ class ecard_installer { } static function install() { + module::set_var("ecard","send_plain",false); module::set_var("ecard", "subject", "You have been sent an eCard"); module::set_var("ecard", "message", "Hello, \r\n%fromname has sent you an eCard. " . @@ -38,7 +39,8 @@ class ecard_installer { } static function upgrade($version) { - if($version <= 8) { + if($version <= 10) { + module::set_var("ecard","send_plain",false); module::set_var("ecard", "message", "Hello, \r\n%fromname has sent you an eCard. " . "Click the image to be taken to the gallery."); diff --git a/3.1/modules/ecard/module.info b/3.1/modules/ecard/module.info index b299660e..d5b27c70 100644 --- a/3.1/modules/ecard/module.info +++ b/3.1/modules/ecard/module.info @@ -1,3 +1,3 @@ name = "E-Card" description = "Send a photo as a postcard" -version = 10 +version = 11