public function show($id) { $forum = Forum::with("subForums")->findOrFail($id); $this->authorizeView($forum); $pinnedTopics = $forum->topics()->pinned()->orderBy("topic_type", "desc")->recent()->get(); $topics = $forum->topics()->normal()->recent()->paginate(15); $topicReadStatus = TopicTrack::readStatus(Auth::user(), $pinnedTopics, $topics); return view("forum.forums.show", compact("forum", "topics", "pinnedTopics", "topicReadStatus")); }
public function show($id) { $forum = Forum::with('subForums')->findOrFail($id); $this->authorizeView($forum); $pinnedTopics = $forum->topics()->pinned()->orderBy('topic_type', 'desc')->recent()->get(); $topics = $forum->topics()->normal()->recent()->paginate(15); $topicReadStatus = TopicTrack::readStatus(Auth::user(), $pinnedTopics, $topics); return view('forum.forums.show', compact('forum', 'topics', 'pinnedTopics', 'topicReadStatus')); }
public function show($id) { $forum = Forum::with('subForums')->findOrFail($id); $sort = explode('_', Request::input('sort')); $withReplies = Request::input('with_replies', ''); priv_check('ForumView', $forum)->ensureCan(); $cover = json_item($forum->cover()->firstOrNew([]), new ForumCoverTransformer()); $pinnedTopics = $forum->topics()->pinned()->orderBy('topic_type', 'desc')->recent()->get(); $topics = $forum->topics()->normal()->recent(compact('sort', 'withReplies'))->paginate(15); $topicReadStatus = TopicTrack::readStatus(Auth::user(), $pinnedTopics, $topics); return view('forum.forums.show', compact('forum', 'topics', 'pinnedTopics', 'topicReadStatus', 'cover')); }
public function watch($id) { $topic = Topic::findOrFail($id); $state = get_bool(Request::input('watch')); $privName = 'ForumTopicWatch' . ($state ? 'Add' : 'Remove'); $type = 'watch'; priv_check($privName, $topic)->ensureCan(); TopicWatch::toggle($topic, Auth::user(), $state); switch (Request::input('page')) { case 'manage': $topics = Topic::watchedByUser(Auth::user())->get(); $topicReadStatus = TopicTrack::readStatus(Auth::user(), $topics); // there's currently only destroy action from watch index return js_view('forum.topic_watches.destroy', compact('topic', 'topics', 'topicReadStatus')); default: return js_view('forum.topics.replace_button', compact('topic', 'type', 'state')); } }
public function index() { $topics = Topic::watchedByUser(Auth::user())->get(); $topicReadStatus = TopicTrack::readStatus(Auth::user(), $topics); return view('forum.topic_watches.index', compact('topics', 'topicReadStatus')); }