where("item_id", $item_id) ->where("user_id", $user->id) ->find(); } static function is_watching($item, $user=null) { if (empty($user)) { $user = user::active(); } return ORM::factory("subscription") ->where("item_id", $item->id) ->where("user_id", $user->id) ->find() ->loaded; } static function add_watch($item, $user=null) { if ($item->is_album()) { if (empty($user)) { $user = user::active(); } $subscription = ORM::factory("subscription"); $subscription->item_id = $item->id; $subscription->user_id = $user->id; $subscription->save(); } } static function remove_watch($item, $user=null) { if ($item->is_album()) { if (empty($user)) { $user = user::active(); } $subscription = ORM::factory("subscription") ->where("item_id", $item->id) ->where("user_id", $user->id) ->find()->delete(); } } static function get_subscribers($item) { $users = ORM::factory("user") ->join("subscriptions", "users.id", "subscriptions.user_id") ->join("items", "subscriptions.item_id", "items.id") ->where("email IS NOT", null) ->where("items.left <", $item->left) ->where("items.right >", $item->right) ->find_all(); $subscribers = array(); foreach ($users as $user) { $subscribers[] = $user->email; } return $subscribers; } static function send_item_changed($old, $new=null) { $users = self::get_subscribers($item); } static function send_item_add($item) { $users = self::get_subscribers($item); Sendmail::factory() ->to($users) ->from("from@gallery3.com") ->subject(t("Item added to Gallery3")) ->message($item->title) ->send(); } static function send_item_delete($item) { $users = self::get_subscribers($item); Sendmail::factory() ->to($users) ->from("from@gallery3.com") ->subject("Item deleted: $item->title") ->message("It was deleted") ->send(); } static function send_comment_added($comment) { $users = self::get_subscribers($comment->item()); Sendmail::factory() ->to($users) ->from("from@gallery3.com") ->subject("Comment added to $comment->$item->title") ->message($comment->text) ->send(); } static function send_comment_changed($old, $new) { $users = self::get_subscribers($comment->item()); Sendmail::factory() ->to($users) ->from("from@gallery3.com") ->subject("Comment updated on item: $comment->$item-title") ->message($new->text) ->send(); } }