public function viewActivity($mode = 'default')
 {
     $subs = Sub::getSubs(self::userFp());
     $gsubs = Gsub::getSubs(self::userFp());
     $users = User::whereIn('user_fp', $subs)->orderBy('id', 'desc')->get();
     return View::make('board.activity', ['mode' => $mode, 'users' => $users, 'groups' => $gsubs, 'posts' => Post::activity($mode, self::userFp(), $subs, $gsubs, self::getBL())]);
 }
Esempio n. 2
0
 public static function activity($mode, $user_fp, $subs = false, $gsubs = false, $blacklist = false)
 {
     $subs = $subs ? $subs : Sub::getSubs($user_fp);
     $gsubs = $gsubs ? $gsubs : Gsub::getSubs($user_fp);
     switch ($mode) {
         case 'posts':
             $posts = DB::table('posts')->join('users', 'posts.user_fp', '=', 'users.user_fp')->where('posts.parent_id', 0)->whereIn('posts.user_fp', $subs)->orWhereIn('posts.group_name', $gsubs)->orderBy('posts.created_at', 'desc')->select('posts.*', 'users.public_hash', 'users.nickname');
             break;
         case 'replies':
             $user_posts = DB::table('posts')->where('posts.user_fp', $user_fp)->where('posts.parent_id', '!=', 0)->orderBy('posts.created_at', 'desc')->limit(15)->lists('id');
             if (count($user_posts) == 0) {
                 return [];
             }
             $posts = DB::table('posts')->join('users', 'posts.user_fp', '=', 'users.user_fp')->orderBy('posts.created_at', 'desc')->select('posts.*', 'users.public_hash', 'users.nickname');
             foreach ($user_posts as $id) {
                 $posts = $posts->orWhere('posts.message', 'like', ">>{$id}%");
             }
             break;
         case 'blog_comments':
             $user_posts = DB::table('posts')->where('posts.user_fp', $user_fp)->where('posts.parent_id', 0)->orderBy('posts.updated_at', 'desc')->limit(15)->lists('id');
             if (count($user_posts) == 0) {
                 return [];
             }
             $posts = DB::table('posts')->join('users', 'posts.user_fp', '=', 'users.user_fp')->where('posts.user_fp', '!=', $user_fp)->whereIn('posts.parent_id', $user_posts)->orderBy('posts.created_at', 'desc')->select('posts.*', 'users.public_hash', 'users.nickname');
             break;
         default:
             $posts = DB::table('posts')->join('users', 'posts.user_fp', '=', 'users.user_fp')->whereIn('posts.user_fp', $subs)->orWhereIn('posts.group_name', $gsubs)->orderBy('posts.created_at', 'desc')->select('posts.*', 'users.public_hash', 'users.nickname');
             break;
     }
     if ($blacklist) {
         $posts->whereNotIn("posts.user_fp", $blacklist);
     }
     return $posts->limit(30)->get();
 }