summaryrefslogtreecommitdiff
path: root/modules/notification
diff options
context:
space:
mode:
Diffstat (limited to 'modules/notification')
-rw-r--r--modules/notification/helpers/notification.php2
-rw-r--r--modules/notification/helpers/notification_event.php65
-rw-r--r--modules/notification/helpers/notification_installer.php4
3 files changed, 51 insertions, 20 deletions
diff --git a/modules/notification/helpers/notification.php b/modules/notification/helpers/notification.php
index 92c40d4f..d95b3060 100644
--- a/modules/notification/helpers/notification.php
+++ b/modules/notification/helpers/notification.php
@@ -153,7 +153,7 @@ class notification {
->where("email", $email)
->find_all();
if ($result->count() == 1) {
- $pending = $result->get();
+ $pending = $result->current();
Sendmail::factory()
->to($email)
->subject($pending->subject)
diff --git a/modules/notification/helpers/notification_event.php b/modules/notification/helpers/notification_event.php
index d1b76e93..8fbeda92 100644
--- a/modules/notification/helpers/notification_event.php
+++ b/modules/notification/helpers/notification_event.php
@@ -18,42 +18,73 @@
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
*/
class notification_event_Core {
+ // The assumption is that the exception was logged at a lower level, but we
+ // don't want to screw up the processing that was generating the notification
+ // so we don't pass the exception up the call stack
static function item_updated($original, $new) {
- notification::send_item_updated($new);
+ try {
+ notification::send_item_updated($new);
+ } catch (Exception $e) {
+ Kohana::log("error", "@todo notification_event::item_updated() failed");
+ }
}
static function item_created($item) {
- notification::send_item_add($item);
+ try {
+ notification::send_item_add($item);
+ } catch (Exception $e) {
+ Kohana::log("error", "@todo notification_event::item_created() failed");
+ }
}
static function item_deleted($item) {
- notification::send_item_deleted($item);
+ try {
+ notification::send_item_deleted($item);
- if (notification::is_watching($item)) {
- notification::remove_watch($item);
+ if (notification::is_watching($item)) {
+ notification::remove_watch($item);
+ }
+ } catch (Exception $e) {
+ Kohana::log("error", "@todo notification_event::item_deleted() failed");
}
}
static function comment_created($comment) {
- if ($comment->state == "published") {
- notification::send_comment_published($comment);
+ try {
+ if ($comment->state == "published") {
+ notification::send_comment_published($comment);
+ }
+ } catch (Exception $e) {
+ Kohana::log("error", "@todo notification_event::comment_created() failed");
}
}
static function comment_updated($original, $new) {
- if ($new->state == "published" && $original->state != "published") {
- notification::send_comment_published($new);
+ try {
+ if ($new->state == "published" && $original->state != "published") {
+ notification::send_comment_published($new);
+ }
+ } catch (Exception $e) {
+ Kohana::log("error", "@todo notification_event::comment_updated() failed");
}
}
static function user_before_delete($user) {
- ORM::factory("subscription")
- ->where("user_id", $user->id)
- ->delete_all();
+ try {
+ ORM::factory("subscription")
+ ->where("user_id", $user->id)
+ ->delete_all();
+ } catch (Exception $e) {
+ Kohana::log("error", "@todo notification_event::user_before_delete() failed");
+ }
}
static function batch_complete() {
- notification::send_pending_notifications();
+ try {
+ notification::send_pending_notifications();
+ } catch (Exception $e) {
+ Kohana::log("error", "@todo notification_event::batch_complete() failed");
+ }
}
static function site_menu($menu, $theme) {
@@ -67,10 +98,10 @@ class notification_event_Core {
$menu->get("options_menu")
->append(Menu::factory("link")
- ->id("watch")
- ->label($label)
- ->css_id("gNotifyLink")
- ->url(url::site("notification/watch/$item->id?csrf=" . access::csrf_token())));
+ ->id("watch")
+ ->label($label)
+ ->css_id("gNotifyLink")
+ ->url(url::site("notification/watch/$item->id?csrf=" . access::csrf_token())));
}
}
}
diff --git a/modules/notification/helpers/notification_installer.php b/modules/notification/helpers/notification_installer.php
index 3d450258..aa2e09f7 100644
--- a/modules/notification/helpers/notification_installer.php
+++ b/modules/notification/helpers/notification_installer.php
@@ -27,14 +27,14 @@ class notification_installer {
PRIMARY KEY (`id`),
UNIQUE KEY (`item_id`, `user_id`),
UNIQUE KEY (`user_id`, `item_id`))
- ENGINE=InnoDB DEFAULT CHARSET=utf8;");
+ DEFAULT CHARSET=utf8;");
$db->query("CREATE TABLE IF NOT EXISTS {pending_notifications} (
`id` int(9) NOT NULL auto_increment,
`email` varchar(128) NOT NULL,
`subject` varchar(255) NOT NULL,
`text` text,
PRIMARY KEY (`id`))
- ENGINE=InnoDB DEFAULT CHARSET=utf8;");
+ DEFAULT CHARSET=utf8;");
module::set_version("notification", 1);
}