summaryrefslogtreecommitdiff
path: root/modules/notification
diff options
context:
space:
mode:
authorBharat Mediratta <bharat@menalto.com>2009-07-16 11:19:34 -0700
committerBharat Mediratta <bharat@menalto.com>2009-07-16 11:19:34 -0700
commit5b3b675b6d8a1cd9a5f2b9455c551791e18d88ff (patch)
tree239f6042596a5168b9023706c33a0f89ebaf6d1d /modules/notification
parent2864aceb8117d0644b264ceca4d0f84fd028538f (diff)
Non-trivial changes to the event handling code:
1) The item_updated event no longer takes the old and new items. Instead we overload ORM to track the original data and make that available via the item. This will allow us to move event publishing down into the API methods which in turn will give us more stability since we won't require each controller to remember to do it. 2) ORM class now tracks the original values. It doesn't track the original relationships (no need for that, yet) 3) Added new events: item_deleted group_deleted user_deleted
Diffstat (limited to 'modules/notification')
-rw-r--r--modules/notification/helpers/notification.php19
-rw-r--r--modules/notification/helpers/notification_event.php10
-rw-r--r--modules/notification/helpers/notification_menu.php2
-rw-r--r--modules/notification/views/item_updated.html.php16
4 files changed, 23 insertions, 24 deletions
diff --git a/modules/notification/helpers/notification.php b/modules/notification/helpers/notification.php
index 8ee0c6ba..e246af2c 100644
--- a/modules/notification/helpers/notification.php
+++ b/modules/notification/helpers/notification.php
@@ -82,17 +82,16 @@ class notification {
return $subscribers;
}
- static function send_item_updated($old, $new) {
+ static function send_item_updated($item) {
$v = new View("item_updated.html");
- $v->old = $old;
- $v->new = $new;
- $v->subject = $old->is_album() ?
- t("Album %title updated", array("title" => $old->title)) :
- ($old->is_photo() ?
- t("Photo %title updated", array("title" => $old->title))
- : t("Movie %title updated", array("title" => $old->title)));
-
- self::_notify_subscribers($old, $v->render(), $v->subject);
+ $v->item = $item;
+ $v->subject = $item->is_album() ?
+ t("Album %title updated", array("title" => $item->original("title"))) :
+ ($item->is_photo() ?
+ t("Photo %title updated", array("title" => $item->original("title")))
+ : t("Movie %title updated", array("title" => $item->original("title"))));
+
+ self::_notify_subscribers($item, $v->render(), $v->subject);
}
static function send_item_add($item) {
diff --git a/modules/notification/helpers/notification_event.php b/modules/notification/helpers/notification_event.php
index 1cf9ff58..536557c6 100644
--- a/modules/notification/helpers/notification_event.php
+++ b/modules/notification/helpers/notification_event.php
@@ -18,15 +18,15 @@
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
*/
class notification_event_Core {
- static function item_updated($old, $new) {
- notification::send_item_updated($old, $new);
+ static function item_updated($item) {
+ notification::send_item_updated($item);
}
static function item_created($item) {
notification::send_item_add($item);
}
- static function item_before_delete($item) {
+ static function item_deleted($item) {
notification::send_item_deleted($item);
if (notification::is_watching($item)) {
@@ -40,8 +40,8 @@ class notification_event_Core {
}
}
- static function comment_updated($old, $new) {
- if ($new->state == "published" && $old->state != "published") {
+ static function comment_updated($item) {
+ if ($item->state == "published" && $item->original("state") != "published") {
notification::send_comment_published($new);
}
}
diff --git a/modules/notification/helpers/notification_menu.php b/modules/notification/helpers/notification_menu.php
index 696aad62..87478b8a 100644
--- a/modules/notification/helpers/notification_menu.php
+++ b/modules/notification/helpers/notification_menu.php
@@ -21,7 +21,7 @@ class notification_menu_Core {
static function site($menu, $theme) {
if (!user::active()->guest) {
$item = $theme->item();
-
+
if ($item && $item->is_album()) {
$watching = notification::is_watching($item);
diff --git a/modules/notification/views/item_updated.html.php b/modules/notification/views/item_updated.html.php
index 0620c50c..39f9113b 100644
--- a/modules/notification/views/item_updated.html.php
+++ b/modules/notification/views/item_updated.html.php
@@ -7,27 +7,27 @@
<h2> <?= p::clean($subject) ?> </h2>
<table>
<tr>
- <? if ($old->title != $new->title): ?>
+ <? if ($item->original("title") != $item->title): ?>
<td><?= t("New Title:") ?></td>
- <td><?= p::clean($new->title) ?></td>
+ <td><?= p::clean($item->title) ?></td>
<? else: ?>
<td><?= t("Title:") ?></td>
- <td><?= p::clean($new->title) ?></td>
+ <td><?= p::clean($item->title) ?></td>
<? endif ?>
</tr>
<tr>
<td><?= t("Url:") ?></td>
- <td><a href="<?= $new->url(array(), true) ?>"><?= $new->url(array(), true) ?></a></td>
+ <td><a href="<?= $item->url(array(), true) ?>"><?= $item->url(array(), true) ?></a></td>
</tr>
- <? if ($old->description != $new->description): ?>
+ <? if ($item->original("description") != $item->description): ?>
<tr>
<td><?= t("New Description:") ?></td>
- <td><?= p::clean($new->description) ?></td>
+ <td><?= p::clean($item->description) ?></td>
</tr>
- <? elseif (!empty($new->description)): ?>
+ <? elseif (!empty($item->description)): ?>
<tr>
<td><?= t("Description:") ?></td>
- <td><?= p::clean($new->description) ?></td>
+ <td><?= p::clean($item->description) ?></td>
</tr>
<? endif ?>
</table>