public function getWall($wid, $type, $listRows = 10, $page = 1)
 {
     $dao = D('Wall');
     $map = array();
     $map['wid'] = $wid;
     $map['del'] = 0;
     $map['type'] = $type;
     $count = $dao->count($map);
     if ($page < 1) {
         $page = 1;
     }
     if ($page > $count) {
         $page = $count;
     }
     $Wall = $dao->where($map)->order('time desc')->field('id,fromid,text,time,username')->limit(($page - 1) * $listRows . ',' . $listRows)->findAll();
     //get wall action
     foreach ($Wall as &$key) {
         $action = array();
         //wall action: report
         if ($this->userId && $this->userId != $key['fromid']) {
             $report = array('report' => '<a onclick="" href="' . url('', '', 'report', '', array('type' => 'wall', 'id' => $key['id'])) . '">' . L('_ACTION_REPORT_') . '</a>');
             $action += $report;
         }
         //wall action: delete
         if ($this->isOwner($key['id'], $wid, $key['fromid'])) {
             $delete = array('delete' => '<a onclick="" href="' . url('', '', 'Wall', '', array('action' => 'delete', 'id' => $key['id'])) . '">' . L('_ACTION_DELETE_') . '</a>');
             $action += $delete;
         }
         $key += array('action' => $action);
         //get user info
         $key += array('userInfo' => getUserBasicInfo($key['fromid']));
     }
     $array = array();
     $array['wid'] = $wid;
     $array['type'] = $type;
     $array['list'] = $Wall;
     $array['listRows'] = $listRows;
     $array['count'] = $count;
     $array['page'] = $page;
     return $array;
 }
 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 (empty($this->userId)) {
             $this->redirect('', '', 'index');
         } else {
             if ($uid == $this->userId) {
                 $uid = $this->userId;
                 $Profile = $this->userInfo;
             } else {
                 $user = new ProfileAction();
                 $userRelation = $user->getFriendRelation($uid);
                 if ($userRelation == 'stranger') {
                     $this->redirect('', '', 'profile', '', array('id' => $uid));
                 }
             }
         }
     }
     $dao = D('User');
     $Profile = $dao->find($uid);
     $this->assign('profile', $Profile);
     /*
      * get current user's friends
      */
     $currentUserFriend = getFriend($uid);
     $i = 0;
     $j = 1;
     foreach ($currentUserFriend as &$key) {
         $key = array('uid' => current(array_diff($key, array($uid))));
         $key += array('userInfo' => getUserBasicInfo($key['uid']));
         $key += array('key' => $i);
         $key += array('id' => $j);
         $j++;
         if ($i == 9) {
             $i = 0;
         } else {
             $i++;
         }
     }
     $this->assign('currentUserFriend', $currentUserFriend);
     /*
      * get user count
      */
     $friendCount = count($currentUserFriend);
     $this->assign('friendCount', $friendCount);
     /*
      * get header
      */
     $name = '<a href="' . url('', '', 'profile', '', array('id' => $uid)) . '">' . $Profile['name'] . '</a>';
     $pageHeader = sprintf(L('_friends_header'), $name);
     if ($currentUserFriend) {
         $pageSubheader = sprintf(L('_friends_subheader1'), $name, $friendCount);
     } else {
         $pageSubheader = sprintf(L('_friends_subheader2'), $name);
     }
     $this->assign('pageHeader', $pageHeader);
     $this->assign('pageSubheader', $pageSubheader);
     $this->display();
 }
 public function stranger()
 {
     $uid = (int) $_GET['id'];
     if (empty($uid)) {
         $this->redirect('', '', 'index');
     } else {
         $dao = D('User');
         $Profile = $dao->find($uid);
         if (empty($Profile)) {
             $this->redirect('', '', 'index');
         }
     }
     $this->assign('profile', $Profile);
     /*
      * get current user's friends
      */
     $currentUserFriend = getFriend($uid);
     shuffle($currentUserFriend);
     foreach ($currentUserFriend as &$key) {
         $key = array('uid' => current(array_diff($key, array($uid))));
     }
     //get user info
     for ($i = 0; $i < count($currentUserFriend); $i++) {
         $friend_uid = $currentUserFriend[$i]['uid'];
         $currentUserFriendShuffle[$i]['uid'] = $friend_uid;
         $currentUserFriendShuffle[$i]['userInfo'] = getUserBasicInfo($friend_uid);
         if ($i == 7) {
             break;
         }
     }
     $this->assign('currentUserFriend', $currentUserFriendShuffle);
     $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();
 }