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
= ecard::prefill_send_form(ecard::get_send_form($item_id)); ?>
\ 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
= ecard::prefill_send_form(ecard::get_send_form($item_id)); ?>
\ No newline at end of file