/** * @param Request $request * @return $this */ public function index(Request $request) { $this->breadcrumb->push('Forum', route('forum.home')); $this->pushForumCriteria(); // execute query: get all categories that user can has access $sections = $this->forum->groupBySections(auth()->id(), $request->session()->getId()); // let's cache tags. we don't need to run this query every time $tags = Cache::remember('forum:tags', 60 * 24, function () { return $this->forum->getTagClouds(); }); // create view with online users $viewers = app()->make('Session\\Viewers')->render($request->getRequestUri()); return parent::view('forum.home')->with(compact('sections', 'viewers', 'tags')); }