コード例 #1
0
ファイル: Profile.php プロジェクト: phpsource/gnu-social
 /**
  * Request to join the given group.
  * May throw exceptions on failure.
  *
  * @param User_group $group
  * @return mixed: Group_member on success, Group_join_queue if pending approval, null on some cancels?
  */
 function joinGroup(User_group $group)
 {
     $join = null;
     if ($group->join_policy == User_group::JOIN_POLICY_MODERATE) {
         $join = Group_join_queue::saveNew($this, $group);
     } else {
         if (Event::handle('StartJoinGroup', array($group, $this))) {
             $join = Group_member::join($group->id, $this->id);
             self::blow('profile:groups:%d', $this->id);
             self::blow('group:member_ids:%d', $group->id);
             self::blow('group:member_count:%d', $group->id);
             Event::handle('EndJoinGroup', array($group, $this));
         }
     }
     if ($join) {
         // Send any applicable notifications...
         $join->notify();
     }
     return $join;
 }