static function get_subscribers($item) { $subscriber_ids = array(); foreach (ORM::factory("subscription")->select("user_id")->join("items", "subscriptions.item_id", "items.id")->where("items.left_ptr", "<=", $item->left_ptr)->where("items.right_ptr", ">", $item->right_ptr)->find_all()->as_array() as $subscriber) { $subscriber_ids[] = $subscriber->user_id; } if (empty($subscriber_ids)) { return array(); } $users = identity::get_user_list($subscriber_ids); $subscribers = array(); foreach ($users as $user) { if (access::user_can($user, "view", $item) && !empty($user->email)) { $subscribers[$user->email] = 1; } } return array_keys($subscribers); }