예제 #1
0
 /**
  * @param int           $forumId
  * @param CreateRequest $createRequest
  *
  * @return $this|bool|\Illuminate\Http\RedirectResponse
  */
 public function postCreate($forumId, CreateRequest $createRequest)
 {
     // Forum permissions are checked in "CreateRequest"
     if (!$this->guard->check()) {
         $captcha = $this->checkCaptcha();
         if ($captcha !== true) {
             return $captcha;
         }
     }
     $poll = null;
     if ($createRequest->input('add-poll')) {
         $pollCreateRequest = app()->make('MyBB\\Core\\Http\\Requests\\Poll\\CreateRequest');
         $poll = ['question' => $pollCreateRequest->input('question'), 'num_options' => count($pollCreateRequest->options()), 'options' => $pollCreateRequest->options(), 'is_closed' => false, 'is_multiple' => (bool) $pollCreateRequest->input('is_multiple'), 'is_public' => (bool) $pollCreateRequest->input('is_public'), 'end_at' => null, 'max_options' => (int) $pollCreateRequest->input('maxoptions')];
         if ($pollCreateRequest->input('endAt')) {
             $poll['end_at'] = new \DateTime($pollCreateRequest->input('endAt'));
         }
     }
     $topic = $this->topicRepository->create(['title' => $createRequest->input('title'), 'forum_id' => $createRequest->input('forum_id'), 'first_post_id' => 0, 'last_post_id' => 0, 'views' => 0, 'num_posts' => 0, 'content' => $createRequest->input('content'), 'username' => $createRequest->input('username')]);
     if ($topic) {
         if ($poll) {
             $poll['topic_id'] = $topic->id;
             $this->pollRepository->create($poll);
             $this->topicRepository->setHasPoll($topic, true);
         }
         return redirect()->route('topics.show', ['slug' => $topic->slug, 'id' => $topic->id]);
     }
     return redirect()->route('topic.create', ['forumId' => $forumId])->withInput()->withErrors(['content' => trans('errors.error_creating_topic')]);
 }
예제 #2
0
 /**
  * @param  string        $slug
  * @param  int           $id
  * @param CreateRequest $createRequest
  *
  * @return \Illuminate\Http\RedirectResponse
  */
 public function postCreate($slug, $id, CreateRequest $createRequest)
 {
     $topic = $this->topicRepository->find($id);
     if (!$topic) {
         throw new TopicNotFoundException();
     }
     $this->breadcrumbs->setCurrentRoute('polls.create', $topic);
     $poll = ['topic_id' => $id, 'question' => $createRequest->input('question'), 'num_options' => count($createRequest->options()), 'options' => $createRequest->options(), 'is_closed' => false, 'is_multiple' => (bool) $createRequest->input('is_multiple'), 'is_public' => (bool) $createRequest->input('is_public'), 'end_at' => null, 'max_options' => (int) $createRequest->input('maxoptions')];
     if ($createRequest->input('endAt')) {
         $poll['end_at'] = new \DateTime($createRequest->input('endAt'));
     }
     $poll = $this->pollRepository->create($poll);
     if ($poll) {
         $this->topicRepository->setHasPoll($topic, true);
         return redirect()->route('topics.show', ['slug' => $topic->slug, 'id' => $topic->id]);
     }
     return redirect()->route('polls.create')->withInput()->withErrors(['error' => trans('error.error_creating_poll')]);
 }