/** * Add new friend. * * @static * @param integer $user_id * @param integer $friend_id * @return boolean */ public static function add($user_id, $friend_id) { try { $friend = new Model_Friend(); $friend->set_fields(array('user_id' => $user_id, 'friend_id' => $friend_id, 'created' => time())); $friend->save(); Anqh::cache_delete('friends_' . $user_id); Anqh::cache_delete('friends_of_' . $friend_id); return true; } catch (Exception $e) { return false; } }
/** * Get user's friends. * * @param boolean $frienders true for frienders, false for friends * @return array */ public function find_friends($frienders = false) { return $frienders ? Model_Friend::find_by_friend($this->id) : Model_Friend::find_by_user($this->id); }
public function action_request_accept() { // no confirmation $friend = new Model_Owner($this->request->param('id')); if (!$friend->is_on_my_friends_list($this->me())) { Message::add('error', 'This person does not want to be your friend.'); Request::current()->redirect(''); } if ($friend->is_on_friends_friends_list($this->me())) { Message::add('error', 'You are already friends with this person.'); Request::current()->redirect(''); } $new_friend = new Model_Friend(); $new_friend->creator_id = $this->me()->id; $new_friend->firstname = $friend->firstname; $new_friend->surname = $friend->surname; $new_friend->email = $friend->email; $new_friend->save(); Message::add('success', 'Successfully confirmed friendship'); Request::current()->redirect(''); }
public function action_delete_friend() { @(list($list_id, $friend_id) = explode('-', $this->request->param('id'))); $this->template->title = 'Confirm'; if (!$list_id || !$friend_id) { Request::current()->redirect('user/noaccess'); } $list = new Model_List($list_id); $friend = new Model_Friend($friend_id); if (arr::get($_POST, 'delete')) { $friend->remove('lists', $list); Message::add('success', 'Friend removed from list.'); Request::current()->redirect('list/mine/' . $list->id); } $view = View::factory('list/delete-friend'); $view->list = $list; $view->friend = $friend; $this->template->content = $view; }
/** * Get user's friends * * @return array */ public function find_friends() { return Model_Friend::find_by_user($this->id); }
/** * See if $this is on $user's friends list */ public function is_on_friends_friends_list(Model_User $user) { $friends_friend = new Model_Friend(array('email' => $this->email, 'creator_id' => $user->id)); return $friends_friend->loaded(); }