Наследование: extends Illuminate\Database\Eloquent\Model
Пример #1
0
 public function store(HttpRequest $request, $forum_id)
 {
     $this->validate($request, ['title' => 'required', 'body' => 'required']);
     $forum = Forum::findOrFail($forum_id);
     $this->authorizePost($forum, null);
     $topic = Topic::createNew($forum, $request->input('title'), Auth::user(), $request->input('body'), false)->fresh();
     Event::fire(new TopicWasCreated($topic, $topic->posts->last(), Auth::user()));
     return ujs_redirect(route('forum.topics.show', $topic));
 }
Пример #2
0
 public function store(HttpRequest $request, $forum_id)
 {
     $this->validate($request, ['title' => 'required', 'body' => 'required']);
     $forum = Forum::findOrFail($forum_id);
     $this->authorizePost($forum, null);
     $topic = Topic::createNew(['forum' => $forum, 'title' => $request->input('title'), 'poster' => Auth::user(), 'body' => $request->input('body'), 'notifyReplies' => false, 'cover' => TopicCover::findForUse(presence($request->input('cover_id')), Auth::user())]);
     Event::fire(new TopicWasCreated($topic, $topic->posts->last(), Auth::user()));
     return ujs_redirect(route('forum.topics.show', $topic));
 }
Пример #3
0
 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"));
 }
Пример #4
0
 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'));
 }
Пример #5
0
 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'));
 }
Пример #6
0
 public function store()
 {
     if (Request::hasFile('cover_file') !== true) {
         abort(422);
     }
     $forum = Forum::findOrFail(Request::input('forum_id'));
     if ($forum->cover !== null) {
         abort(422);
     }
     try {
         $cover = ForumCover::upload(Request::file('cover_file')->getRealPath(), Auth::user(), $forum);
     } catch (ImageProcessorException $e) {
         return error_popup($e->getMessage());
     }
     return fractal_item_array($cover, new ForumCoverTransformer());
 }
Пример #7
0
 public function updatePage($text)
 {
     if ($this->userPage === null) {
         DB::transaction(function () use($text) {
             $topic = Forum\Topic::createNew(Forum\Forum::find(config('osu.user.user_page_forum_id')), "{$this->username}'s user page", $this, $text, false);
             $this->update(['userpage_post_id' => $topic->topic_first_post_id]);
         });
     } else {
         $this->userPage->edit($text, $this);
     }
     return $this->fresh();
 }
Пример #8
0
 public function store(HttpRequest $request)
 {
     $forum = Forum::findOrFail($request->get('forum_id'));
     priv_check('ForumTopicStore', $forum)->ensureCan();
     $this->validate($request, ['title' => 'required', 'body' => 'required']);
     if (get_bool($request->get('with_poll'))) {
         $pollParams = get_params($request, 'forum_topic_poll', ['length_days:int', 'max_options:int', 'options:string_split', 'title', 'vote_change:bool']);
         $poll = (new TopicPoll())->fill($pollParams);
         if (!$poll->isValid()) {
             return error_popup(implode(' ', $poll->validationErrors()->allMessages()));
         }
     }
     $params = ['title' => $request->get('title'), 'user' => Auth::user(), 'body' => $request->get('body'), 'cover' => TopicCover::findForUse(presence($request->input('cover_id')), Auth::user())];
     $topic = Topic::createNew($forum, $params, $poll ?? null);
     if ($topic->topic_id !== null) {
         Event::fire(new TopicWasCreated($topic, $topic->posts->last(), Auth::user()));
         return ujs_redirect(route('forum.topics.show', $topic));
     } else {
         abort(422);
     }
 }
Пример #9
0
 public function index()
 {
     $forums = Forum::with('cover')->get();
     return view('admin.forum.forum_covers.index', compact('forums'));
 }