Exemplo n.º 1
0
 /**
  * 好友的动态
  */
 public function friend()
 {
     // 获取当前用户id
     $uid = $_SESSION['uid'];
     if ($uid) {
         $id = $uid;
         // 如果有uid 说明是访客
     } else {
         $id = $_SESSION['user']['id'];
     }
     // 获取当前用户的所有好友id
     $fid = D('Friend')->where(array('uid' => $id))->getField('fidlist', true);
     $fid = ltrim($fid[0], ',');
     $map = "uid in (" . $fid . ")";
     // 根据当前用户id 查找record 表
     $data = D('Record')->where($map)->order('addtime desc')->limit(10)->select();
     if ($data) {
         // 获取用户的头像和用户名
         $user = new MoodController();
         $list = $user->foreachGetUser($data, 'uid');
         // 会循环多次
         foreach ($list as $key => $value) {
             $userinfo[$key] = array_slice($value, -2, 2);
         }
         // 获取limit 条件
         $cond = $this->getLimitCondition($data);
         $cond = explode(',', $cond);
         $mood = $cond[0];
         if ($mood) {
             // 处理说说
             $say = D('Mood')->where($map)->order('addtime desc')->limit($mood)->select();
         }
         $log = $cond[1];
         if ($log) {
             // 处理日志
             $logData = D('LogCate')->where($map)->select();
             // 查询日志分类
             // 查当前用户的所有好友日志分类id
             $cate = new LogController();
             $map = $cate->getLogCateId($logData);
             $map = "cid in (" . $map . ")";
             $info = D('Log')->where($map)->order('addtime desc')->limit($log)->select();
         }
         $album = $cond[2];
         if ($album) {
             // 处理相册
             echo '不调用';
         }
         $data = $this->sort($say, $info);
         $count = count($data);
         foreach ($data as $key => $value) {
             $data[$key] = array_merge($value, $userinfo[$count - $key - 1]);
         }
     }
     $this->assign('list', $data);
     $this->display();
 }