public function index()
 {
     $uid = (int) $_GET['id'];
     if (empty($uid)) {
         if (empty($this->userId)) {
             $this->redirect('', '', 'index');
         } else {
             $uid = $this->userId;
             $Profile = $this->userInfo;
         }
     } else {
         if ($uid == $this->userId) {
             $uid = $this->userId;
             $Profile = $this->userInfo;
         } else {
             $dao = D('User');
             $Profile = $dao->find($uid);
             if (empty($Profile)) {
                 $this->redirect('', '', 'home');
             }
             if (empty($this->userId)) {
                 $this->redirect('', '', 'people', '', array('name' => str_replace(' ', '-', $Profile['name']), 'id' => $uid));
             }
         }
     }
     $this->assign('profile', $Profile);
     /*
      * get current user's friends
      */
     $currentUserFriend = getFriend($uid);
     foreach ($currentUserFriend as &$key) {
         $key = array('uid' => current(array_diff($key, array($uid))));
     }
     /*
      * get friend relation
      */
     $userRelation = $this->getFriendRelation($uid);
     $this->assign('userRelation', $userRelation);
     /*
      * redirect for stranger
      */
     if ($userRelation == 'stranger') {
         $this->redirect('', '', 's', '', array('id' => $uid));
     }
     /*
      * get friend subheader
      */
     $friendCount = count($currentUserFriend);
     if (!$currentUserFriend) {
         $friendSubheader = L('_friend_subheader3');
     } else {
         if ($friendCount > 1) {
             $friendSubheader = '<a href="' . url('', '', 'friends', '', array('id' => $uid)) . '">' . sprintf(L('_friend_subheader1'), $friendCount) . '</a>';
         } else {
             $friendSubheader = '<a href="' . url('', '', 'friends', '', array('id' => $uid)) . '">' . sprintf(L('_friend_subheader2'), $friendCount) . '</a>';
         }
     }
     $this->assign('friendCount', $friendCount);
     $this->assign('friendSubheader', $friendSubheader);
     /*
      * get user info
      */
     shuffle($currentUserFriend);
     $j = 0;
     for ($i = 0; $i < $friendCount; $i++) {
         $friend_uid = $currentUserFriend[$i]['uid'];
         $currentUserFriendShuffle[$i]['uid'] = $friend_uid;
         $currentUserFriendShuffle[$i]['userInfo'] = getUserBasicInfo($friend_uid);
         $currentUserFriendShuffle[$i]['key'] = $j;
         $currentUserFriendShuffle[$i]['id'] = $i + 1;
         if ($j == 2) {
             $j = 0;
         } else {
             $j++;
         }
         if ($i == 5) {
             break;
         }
     }
     $this->assign('currentUserFriend', $currentUserFriendShuffle);
     /*
      * get user group
      */
     $userGroupAll = getUserGroup($uid);
     $userGroup = array();
     if (empty($userGroupAll)) {
         $userGroup = $userGroupAll;
     } else {
         if ($this->userId == $uid) {
             $userGroup = $userGroupAll;
             foreach ($userGroup as &$key) {
                 $map['id'] = $key['gid'];
                 $info = D('Group')->find($map);
                 $key += array('info' => $info);
             }
         } else {
             $j = 0;
             for ($i = 0; $i < count($userGroupAll); $i++) {
                 $map['id'] = $userGroupAll[$i]['gid'];
                 $info = D('Group')->find($map);
                 if ($info['privacy'] != 'SECRET') {
                     $userGroup[$j] = $userGroupAll[$i] + array('info' => $info);
                     $j++;
                 }
             }
         }
     }
     $this->assign('userGroup', $userGroup);
     /*
      * get user wall
      */
     $listRows = 5;
     $WallCls = new WallAction();
     $Wall = $WallCls->getWall($uid, 'u', $listRows, 1);
     $wallSubheader = $WallCls->getWallHeader($Wall['count'], $listRows, $uid, 'u');
     $this->assign('wall', $Wall);
     $this->assign('wallSubheader', $wallSubheader);
     $this->display();
 }
 public function index()
 {
     $gid = (int) $_GET['id'];
     //redirect if isnt group
     if (!$gid || !getGroupInfo($gid)) {
         $this->redirect('', '', 'home');
     }
     //get group info
     $groupInfo = getGroupInfo($gid);
     $this->assign('groupInfo', $groupInfo);
     //get members
     $groupMember = getGroupMember($gid);
     $this->assign('groupMember', $groupMember);
     /*
      * check access settings
      */
     if (empty($groupMember)) {
         if (empty($this->userId)) {
             $this->redirect('', '', 'index');
         } else {
             $this->redirect('', '', 'home');
         }
     } else {
         if (empty($this->userId)) {
             if ($groupInfo['privacy'] == 'OPEN') {
                 $groupAccess = 'GUEST';
             } else {
                 $this->redirect('', '', 'index');
             }
         } else {
             $isMember = false;
             foreach ($groupMember as $key) {
                 if ($this->userId == $key['uid']) {
                     $isMember = true;
                     $groupAccess = strtoupper($key['title']);
                     break;
                 }
             }
             if (!$isMember) {
                 if ($groupInfo['privacy'] == 'OPEN') {
                     $groupAccess = 'USER_GUEST';
                 } else {
                     if ($groupInfo['privacy'] == 'CLOSED') {
                         $this->display('closed');
                         exit;
                     } else {
                         $this->redirect('', '', 'home');
                     }
                 }
             }
         }
     }
     $this->assign('groupAccess', $groupAccess);
     /*
      * group member
      */
     if ($groupMember) {
         $count = count($groupMember);
         shuffle($groupMember);
         if ($groupAccess == 'GUEST') {
             $a1 = '';
             $a2 = '';
         } else {
             $a1 = "<a href=\"" . url('', '', 'members', '', array('id' => $gid)) . "\">";
             $a2 = "</a>";
         }
         if ($count > 8) {
             $groupMemberHeader = sprintf(L('_member_subheader1'), $a1, number_format($count), $a2, 8);
         } else {
             $groupMemberHeader = sprintf(L('_member_subheader2'), $a1, $count, $a2);
         }
         //get user info
         for ($i = 0; $i < $count; $i++) {
             $uid = $groupMember[$i]['uid'];
             $groupMemberShuffle[$i]['uid'] = $uid;
             $groupMemberShuffle[$i]['userInfo'] = getUserBasicInfo($uid);
             if ($i == 7) {
                 break;
             }
         }
         $this->assign('groupMemberShuffle', $groupMemberShuffle);
     } else {
         $groupMemberHeader = L('_member_subheader3');
     }
     $this->assign('groupMemberHeader', $groupMemberHeader);
     /*
      * mini wall
      */
     $listRows = 5;
     $WallCls = new WallAction();
     $Wall = $WallCls->getWall($gid, 'g', $listRows, 1);
     $wallSubheader = $WallCls->getWallHeader($Wall['count'], $listRows, $gid, 'g');
     $this->assign('wall', $Wall);
     $this->assign('wallSubheader', $wallSubheader);
     $this->display();
 }