diff --git a/3.0/modules/ecard/controllers/admin_ecard.php b/3.0/modules/ecard/controllers/admin_ecard.php index 640ce40a..68b53c3f 100644 --- a/3.0/modules/ecard/controllers/admin_ecard.php +++ b/3.0/modules/ecard/controllers/admin_ecard.php @@ -34,6 +34,7 @@ class Admin_ecard_Controller extends Admin_Controller { 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); + module::set_var("ecard", "max_length", $form->ecard->max_length->value); module::set_var("ecard", "access_permissions", $form->ecard->access_permissions->value); module::set_var("ecard", "location", $form->ecard->location->value); message::success(t("eCard settings updated")); @@ -54,8 +55,11 @@ class Admin_ecard_Controller extends Admin_Controller { ->value(module::get_var("ecard", "bcc", "")); $ecard_settings->input("subject")->label(t("E-mail subject")) ->value(module::get_var("ecard", "subject")); - $ecard_settings->textarea("message")->label(t("E-mail message. Valid keywords are \"%toname\" (recipient's name) and \"%fromname\" (sender's name))")) + $ecard_settings->textarea("message")->label(t("E-mail message. Valid keywords are \"%fromname\" (sender's name))")) ->value(module::get_var("ecard", "message")); + $ecard_settings->input("max_length") + ->label(t("Maximum message length")) + ->value(module::get_var("ecard","max_length")); $ecard_settings->dropdown("access_permissions") ->label(t("Who can send eCards?")) ->options(array("everybody" => t("Everybody"), diff --git a/3.0/modules/ecard/controllers/ecard.php b/3.0/modules/ecard/controllers/ecard.php index eeeb7267..b32e787f 100644 --- a/3.0/modules/ecard/controllers/ecard.php +++ b/3.0/modules/ecard/controllers/ecard.php @@ -40,32 +40,33 @@ class Ecard_Controller extends Controller { } if ($valid) { - $v = new View("ecard_email.html"); - $v->item = $item; - $v->subject = module::get_var("ecard", "subject"); - $to_name = $form->send_ecard->to_name->value; - $from_name = $form->send_ecard->from_name->value; - $bcc = module::get_var("ecard", "bcc"); - if($form->send_ecard->send_to_self->checked == true) { - $cc = $form->send_ecard->inputs["from_email"]->value; - } - $v->message = t(module::get_var("ecard", "message"), array("toname" => $to_name, "fromname" => $from_name)); - $v->custom_message = $form->send_ecard->text->value; - $v->image = $item->name; - $to = $form->send_ecard->inputs["to_email"]->value; - $from = $form->send_ecard->inputs["from_email"]->value; - $headers = array("from" => $from_name."<".$from.">", "to" => $to, "subject" => module::get_var("ecard", "subject")); - require_once(MODPATH. "ecard/lib/mime.php"); - $mime = new Mail_mime("\n"); - $mime->setHTMLBody($v->render()); - $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); + $to_array = explode(",",$form->send_ecard->inputs["to_email"]->value); + foreach($to_array as $to) { + $v = new View("ecard_email.html"); + $v->item = $item; + $v->subject = module::get_var("ecard", "subject"); + $from_name = $form->send_ecard->from_name->value; + $bcc = module::get_var("ecard", "bcc"); + if($form->send_ecard->send_to_self->checked == true) { + $cc = $form->send_ecard->inputs["from_email"]->value; + } + $v->message = t(module::get_var("ecard", "message"), array("fromname" => $from_name)); + $v->custom_message = $form->send_ecard->text->value; + $v->image = $item->name; + $from = $form->send_ecard->inputs["from_email"]->value; + $headers = array("from" => $from_name."<".$from.">", "to" => $to, "subject" => module::get_var("ecard", "subject")); + require_once(MODPATH. "ecard/lib/mime.php"); + $mime = new Mail_mime("\n"); + $mime->setHTMLBody($v->render()); + $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); + } message::success("eCard successfully sent"); json::reply(array("result" => "success")); - } else { + } else { json::reply(array("result" => "error", "html" => (string) $form)); - } + } } /** * Present a form for sending a new ecard. @@ -76,7 +77,9 @@ class Ecard_Controller extends Controller { if (!ecard::can_send_ecard()) { access::forbidden(); } - print ecard::prefill_send_form(ecard::get_send_form($item)); + $v_form = new View("ecard_form.html"); + $v_form->item_id = $item_id; + print $v_form->render(); } private static function _notify($to, $from, $subject, $item, $text, $headers, $bcc, $cc) { $sendmail = Sendmail::factory(); diff --git a/3.0/modules/ecard/helpers/ecard.php b/3.0/modules/ecard/helpers/ecard.php index 5b45d759..3461e8cb 100644 --- a/3.0/modules/ecard/helpers/ecard.php +++ b/3.0/modules/ecard/helpers/ecard.php @@ -24,8 +24,8 @@ * Note: by design, this class does not do any permission checking. */ class ecard_Core { - static function get_send_form($item) { - $form = new Forge("ecard/send/{$item->id}", "", "post", array("id" => "g-ecard-form")); + static function get_send_form($item_id) { + $form = new Forge("ecard/send/{$item_id}", "", "post", array("id" => "g-ecard-form")); $group = $form->group("send_ecard")->label(t("Send eCard")); $group->input("from_name") ->label(t("Your name")) @@ -38,28 +38,22 @@ class ecard_Core { ->rules("required|valid_email") ->error_messages("required", t("You must enter a valid email address")) ->error_messages("invalid", t("You must enter a valid email address")); - $group->input("to_name") - ->label(t("Recipient's Name")) - ->id("g-recipient") - ->rules("required") - ->error_messages("required", t("You must enter a recipient's name")); $group->input("to_email") - ->label(t("Recipient's e-mail")) + ->label(t("Recipient's e-mail. Separate multiple recipients with a comma.")) ->id("g-recip-email") - ->rules("required|valid_email") - ->error_messages("required", t("You must enter a valid email address")) - ->error_messages("invalid", t("You must enter a valid email address")); + ->rules("required") + ->error_messages("required", t("You must enter a valid email address")); $group->textarea("text") - ->label(t("Message (255 chars max)")) + ->label(t("Message (".module::get_var("ecard","max_length")." chars max)")) ->id("g-text") - ->rules("required|length[0,255]") - ->error_messages("required", t("You must enter a message")) - ->error_messages("length", t("Your message is too long, please shorten.")); + ->maxlength(module::get_var("ecard","max_length")) + ->rules("required") + ->error_messages("required", t("You must enter a message")); $group->checkbox("send_to_self") ->label(t("Send yourself a copy")) ->value(true) ->checked(false); - $group->hidden("item_id")->value($item->id); + $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 953ad3e0..b45ed944 100644 --- a/3.0/modules/ecard/helpers/ecard_installer.php +++ b/3.0/modules/ecard/helpers/ecard_installer.php @@ -18,13 +18,32 @@ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ class ecard_installer { + private static function getversion() { + return 9; + } + + private static function setversion() { + module::set_version("ecard", self::getversion()); + } + static function install() { module::set_var("ecard", "subject", "You have been sent an eCard"); module::set_var("ecard", "message", - "Hello %toname, \r\n%fromname has sent you an eCard. " . + "Hello, \r\n%fromname has sent you an eCard. " . "Click the image to be taken to the gallery."); module::set_var("ecard", "bcc", ""); module::set_var("ecard", "access_permissions", "everybody"); - module::set_version("ecard", 7); + module::set_var("ecard","max_length",255); + self::setversion(); + } + + static function upgrade($version) { + if($version <= 8) { + module::set_var("ecard", "message", + "Hello, \r\n%fromname has sent you an eCard. " . + "Click the image to be taken to the gallery."); + module::set_var("ecard","max_length",255); + } + self::setversion(); } } diff --git a/3.0/modules/ecard/module.info b/3.0/modules/ecard/module.info index 979aae83..f009641a 100644 --- a/3.0/modules/ecard/module.info +++ b/3.0/modules/ecard/module.info @@ -1,4 +1,4 @@ name = "E-Card" description = "Send a photo as a postcard" -version = 7 +version = 9 diff --git a/3.0/modules/ecard/views/ecard_form.html.php b/3.0/modules/ecard/views/ecard_form.html.php new file mode 100644 index 00000000..fc22e95b --- /dev/null +++ b/3.0/modules/ecard/views/ecard_form.html.php @@ -0,0 +1 @@ + Send eCard \ No newline at end of file diff --git a/3.1/modules/ecard/controllers/admin_ecard.php b/3.1/modules/ecard/controllers/admin_ecard.php index 640ce40a..68b53c3f 100644 --- a/3.1/modules/ecard/controllers/admin_ecard.php +++ b/3.1/modules/ecard/controllers/admin_ecard.php @@ -34,6 +34,7 @@ class Admin_ecard_Controller extends Admin_Controller { 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); + module::set_var("ecard", "max_length", $form->ecard->max_length->value); module::set_var("ecard", "access_permissions", $form->ecard->access_permissions->value); module::set_var("ecard", "location", $form->ecard->location->value); message::success(t("eCard settings updated")); @@ -54,8 +55,11 @@ class Admin_ecard_Controller extends Admin_Controller { ->value(module::get_var("ecard", "bcc", "")); $ecard_settings->input("subject")->label(t("E-mail subject")) ->value(module::get_var("ecard", "subject")); - $ecard_settings->textarea("message")->label(t("E-mail message. Valid keywords are \"%toname\" (recipient's name) and \"%fromname\" (sender's name))")) + $ecard_settings->textarea("message")->label(t("E-mail message. Valid keywords are \"%fromname\" (sender's name))")) ->value(module::get_var("ecard", "message")); + $ecard_settings->input("max_length") + ->label(t("Maximum message length")) + ->value(module::get_var("ecard","max_length")); $ecard_settings->dropdown("access_permissions") ->label(t("Who can send eCards?")) ->options(array("everybody" => t("Everybody"), diff --git a/3.1/modules/ecard/controllers/ecard.php b/3.1/modules/ecard/controllers/ecard.php index 5adf0b71..b32e787f 100644 --- a/3.1/modules/ecard/controllers/ecard.php +++ b/3.1/modules/ecard/controllers/ecard.php @@ -40,32 +40,33 @@ class Ecard_Controller extends Controller { } if ($valid) { - $v = new View("ecard_email.html"); - $v->item = $item; - $v->subject = module::get_var("ecard", "subject"); - $to_name = $form->send_ecard->to_name->value; - $from_name = $form->send_ecard->from_name->value; - $bcc = module::get_var("ecard", "bcc"); - if($form->send_ecard->send_to_self->checked == true) { - $cc = $form->send_ecard->inputs["from_email"]->value; - } - $v->message = t(module::get_var("ecard", "message"), array("toname" => $to_name, "fromname" => $from_name)); - $v->custom_message = $form->send_ecard->text->value; - $v->image = $item->name; - $to = $form->send_ecard->inputs["to_email"]->value; - $from = $form->send_ecard->inputs["from_email"]->value; - $headers = array("from" => $from_name."<".$from.">", "to" => $to, "subject" => module::get_var("ecard", "subject")); - require_once(MODPATH. "ecard/lib/mime.php"); - $mime = new Mail_mime("\n"); - $mime->setHTMLBody($v->render()); - $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); + $to_array = explode(",",$form->send_ecard->inputs["to_email"]->value); + foreach($to_array as $to) { + $v = new View("ecard_email.html"); + $v->item = $item; + $v->subject = module::get_var("ecard", "subject"); + $from_name = $form->send_ecard->from_name->value; + $bcc = module::get_var("ecard", "bcc"); + if($form->send_ecard->send_to_self->checked == true) { + $cc = $form->send_ecard->inputs["from_email"]->value; + } + $v->message = t(module::get_var("ecard", "message"), array("fromname" => $from_name)); + $v->custom_message = $form->send_ecard->text->value; + $v->image = $item->name; + $from = $form->send_ecard->inputs["from_email"]->value; + $headers = array("from" => $from_name."<".$from.">", "to" => $to, "subject" => module::get_var("ecard", "subject")); + require_once(MODPATH. "ecard/lib/mime.php"); + $mime = new Mail_mime("\n"); + $mime->setHTMLBody($v->render()); + $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); + } message::success("eCard successfully sent"); json::reply(array("result" => "success")); - } else { + } else { json::reply(array("result" => "error", "html" => (string) $form)); - } + } } /** * Present a form for sending a new ecard. @@ -76,7 +77,9 @@ class Ecard_Controller extends Controller { if (!ecard::can_send_ecard()) { access::forbidden(); } - print ecard::prefill_send_form(ecard::get_send_form($item)); + $v_form = new View("ecard_form.html"); + $v_form->item_id = $item_id; + print $v_form->render(); } private static function _notify($to, $from, $subject, $item, $text, $headers, $bcc, $cc) { $sendmail = Sendmail::factory(); @@ -89,7 +92,7 @@ class Ecard_Controller extends Controller { } if(isset($cc)) { $sendmail->header("cc",$cc); - } + } foreach($headers as $key => $value) { $sendmail->header($key,$value); } diff --git a/3.1/modules/ecard/helpers/ecard.php b/3.1/modules/ecard/helpers/ecard.php index 616c71a3..3461e8cb 100644 --- a/3.1/modules/ecard/helpers/ecard.php +++ b/3.1/modules/ecard/helpers/ecard.php @@ -24,8 +24,8 @@ * Note: by design, this class does not do any permission checking. */ class ecard_Core { - static function get_send_form($item) { - $form = new Forge("ecard/send/{$item->id}", "", "post", array("id" => "g-ecard-form")); + static function get_send_form($item_id) { + $form = new Forge("ecard/send/{$item_id}", "", "post", array("id" => "g-ecard-form")); $group = $form->group("send_ecard")->label(t("Send eCard")); $group->input("from_name") ->label(t("Your name")) @@ -38,28 +38,22 @@ class ecard_Core { ->rules("required|valid_email") ->error_messages("required", t("You must enter a valid email address")) ->error_messages("invalid", t("You must enter a valid email address")); - $group->input("to_name") - ->label(t("Recipient's Name")) - ->id("g-recipient") - ->rules("required") - ->error_messages("required", t("You must enter a recipient's name")); $group->input("to_email") - ->label(t("Recipient's e-mail")) + ->label(t("Recipient's e-mail. Separate multiple recipients with a comma.")) ->id("g-recip-email") - ->rules("required|valid_email") - ->error_messages("required", t("You must enter a valid email address")) - ->error_messages("invalid", t("You must enter a valid email address")); + ->rules("required") + ->error_messages("required", t("You must enter a valid email address")); $group->textarea("text") - ->label(t("Message (255 chars max)")) + ->label(t("Message (".module::get_var("ecard","max_length")." chars max)")) ->id("g-text") - ->rules("required|length[0,255]") - ->error_messages("required", t("You must enter a message")) - ->error_messages("length", t("Your message is too long, please shorten.")); + ->maxlength(module::get_var("ecard","max_length")) + ->rules("required") + ->error_messages("required", t("You must enter a message")); $group->checkbox("send_to_self") ->label(t("Send yourself a copy")) ->value(true) - ->checked(false); - $group->hidden("item_id")->value($item->id); + ->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 953ad3e0..b45ed944 100644 --- a/3.1/modules/ecard/helpers/ecard_installer.php +++ b/3.1/modules/ecard/helpers/ecard_installer.php @@ -18,13 +18,32 @@ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ class ecard_installer { + private static function getversion() { + return 9; + } + + private static function setversion() { + module::set_version("ecard", self::getversion()); + } + static function install() { module::set_var("ecard", "subject", "You have been sent an eCard"); module::set_var("ecard", "message", - "Hello %toname, \r\n%fromname has sent you an eCard. " . + "Hello, \r\n%fromname has sent you an eCard. " . "Click the image to be taken to the gallery."); module::set_var("ecard", "bcc", ""); module::set_var("ecard", "access_permissions", "everybody"); - module::set_version("ecard", 7); + module::set_var("ecard","max_length",255); + self::setversion(); + } + + static function upgrade($version) { + if($version <= 8) { + module::set_var("ecard", "message", + "Hello, \r\n%fromname has sent you an eCard. " . + "Click the image to be taken to the gallery."); + module::set_var("ecard","max_length",255); + } + self::setversion(); } } diff --git a/3.1/modules/ecard/module.info b/3.1/modules/ecard/module.info index 979aae83..f009641a 100644 --- a/3.1/modules/ecard/module.info +++ b/3.1/modules/ecard/module.info @@ -1,4 +1,4 @@ name = "E-Card" description = "Send a photo as a postcard" -version = 7 +version = 9 diff --git a/3.1/modules/ecard/views/ecard_form.html.php b/3.1/modules/ecard/views/ecard_form.html.php new file mode 100644 index 00000000..fc22e95b --- /dev/null +++ b/3.1/modules/ecard/views/ecard_form.html.php @@ -0,0 +1 @@ + Send eCard \ No newline at end of file