summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Prodromou <evan@status.net>2010-11-11 14:51:14 -0500
committerEvan Prodromou <evan@status.net>2010-11-11 14:51:14 -0500
commit2d55bc0e5b89012e700bbeb68411e51477862b23 (patch)
tree3e9e9cc783c280cccfeec305633c97c72dc03887
parentadb16b8098dbe8870b7f4a9dcde49930a41666ff (diff)
give users a chance to opt out of email summaries
-rw-r--r--plugins/EmailSummary/EmailSummaryPlugin.php64
1 files changed, 64 insertions, 0 deletions
diff --git a/plugins/EmailSummary/EmailSummaryPlugin.php b/plugins/EmailSummary/EmailSummaryPlugin.php
index 03577bb4a..58c40e43c 100644
--- a/plugins/EmailSummary/EmailSummaryPlugin.php
+++ b/plugins/EmailSummary/EmailSummaryPlugin.php
@@ -135,4 +135,68 @@ class EmailSummaryPlugin extends Plugin
$qm->connect('usersum', 'UserEmailSummaryHandler');
return true;
}
+
+ /**
+ * Add a checkbox to turn off email summaries
+ *
+ * @param Action $action Action being executed (emailsettings)
+ *
+ * @return boolean hook value
+ */
+
+ function onEndEmailFormData($action)
+ {
+ $user = common_current_user();
+
+ $action->elementStart('li');
+ $action->checkbox('emailsummary',
+ // TRANS: Checkbox label in e-mail preferences form.
+ _('Send me a periodic summary of updates from my network.'),
+ Email_summary_status::getSendSummary($user->id));
+ $action->elementEnd('li');
+ return true;
+ }
+
+ /**
+ * Add a checkbox to turn off email summaries
+ *
+ * @param Action $action Action being executed (emailsettings)
+ *
+ * @return boolean hook value
+ */
+
+ function onEndEmailSaveForm($action)
+ {
+ $sendSummary = $action->boolean('emailsummary');
+
+ $user = common_current_user();
+
+ if (!empty($user)) {
+
+ $ess = Email_summary_status::staticGet('user_id', $user->id);
+
+ if (empty($ess)) {
+
+ $ess = new Email_summary_status();
+
+ $ess->user_id = $user->id;
+ $ess->send_summary = $sendSummary;
+ $ess->created = common_sql_now();
+ $ess->modified = common_sql_now();
+
+ $ess->insert();
+
+ } else {
+
+ $orig = clone($ess);
+
+ $ess->send_summary = $sendSummary;
+ $ess->modified = common_sql_now();
+
+ $ess->update($orig);
+ }
+ }
+
+ return true;
+ }
}