/**
  * Handles the creation of a new thread or reply.
  *
  * @param  \App\Http\Requests\PostRequest  $request
  * @param  Board  $board
  * @param  Post|null  $thread
  * @return Response (redirects to the thread view)
  */
 public function putThread(PostRequest $request, Board $board, Post $thread = null)
 {
     // Create the post.
     $post = new Post($request->all());
     $post->submitTo($board, $thread);
     // Log staff posts.
     if ($post->capcode_id) {
         $this->log('log.post.capcode', $post, ["board_id" => $post->board_id, "board_uri" => $post->board_uri, "capcode" => $post->capcode->getCapcodeName(), "role" => $post->capcode->role]);
     }
     $input = $request->only('updatesOnly', 'updateHtml', 'updatedSince');
     if ($request->wantsJson()) {
         $updatedSince = Carbon::createFromTimestamp($request->input('updatedSince', Carbon::now()->subMinutes(4)->timestamp));
         $includeHTML = isset($input['updateHtml']);
         $posts = Post::getUpdates($updatedSince, $board, $thread, $includeHTML);
         $post->setAppendHTML($includeHTML);
         $posts->push($post);
         $posts->sortBy('board_id');
         return $posts;
     }
     // Redirect to the new post or thread.
     if ($post->reply_to_board_id) {
         return redirect("{$board->board_uri}/thread/{$post->reply_to_board_id}#{$post->board_id}");
     } else {
         return redirect("{$board->board_uri}/thread/{$post->board_id}#{$post->board_id}");
     }
 }
Esempio n. 2
0
 /**
  * Update the specified resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function update(Requests\PostRequest $request, $id)
 {
     $post = Posts::where('id', $id)->firstOrFail();
     if (!empty($request->file('image')) && $request->file('image')->isValid()) {
         $destinationPath = public_path() . "/images/";
         // upload path
         $extension = $request->file('image')->getClientOriginalExtension();
         // getting image extension
         $fileName = $post->url . '.' . $extension;
         // renameing image
         $request->file('image')->move($destinationPath, $fileName);
         // uploading file to given path
         $post->image = $fileName;
     }
     $post->fill($request->only(['title', 'post']));
     $post->save();
     Posts::findOrFail($id)->tags()->detach();
     $tags = [];
     foreach ($this->getTags($request->input('tags')) as $tag) {
         if (!empty($tag)) {
             $isFind = Tags::where('name', $tag)->get()->count();
             if ($isFind == 0) {
                 $tags[] = new Tags(['name' => $tag]);
             } else {
                 $tags[] = Tags::where('name', $tag)->first();
             }
         }
     }
     $post->tags()->saveMany($tags);
     return back();
 }