authorizeForUser($this->getUser(), 'view', $album); $photo = PhotoController::loadPhotoByAlbumAndFilename($album, $photoFilename); if (!UserConfig::get('allow_photo_comments')) { // Not allowed to post comments App::abort(404); } $comment = $photo->comments()->where('id', $commentID)->first(); if (is_null($comment)) { App::abort(404); } return Theme::render('partials.photo_comments_reply_form', [ 'photo' => $photo, 'reply_comment' => $comment ]); } public function store(StorePhotoCommentRequest $request, $albumUrlAlias, $photoFilename) { $album = DbHelper::getAlbumByPath($albumUrlAlias); if (is_null($album)) { App::abort(404); return null; } $this->authorizeForUser($this->getUser(), 'view', $album); $photo = PhotoController::loadPhotoByAlbumAndFilename($album, $photoFilename); if (!UserConfig::get('allow_photo_comments')) { // Not allowed to post comments - redirect back to URL return redirect($photo->url()); } $comment = new PhotoComment(); $comment->photo_id = $photo->id; $comment->fill($request->only(['commentor_email', 'commentor_name', 'comment_text'])); // Validate and link the parent comment, if provided if ($request->has('parent_comment_id')) { $parentComment = $photo->comments()->where('id', intval($request->get('parent_comment_id')))->first(); if (is_null($parentComment)) { $request->getSession()->flash('success', trans('gallery.photo_comment_posted_successfully')); return redirect($photo->url()); } $comment->parent_comment_id = $parentComment->id; } $user = $this->getUser(); if (!is_null($user) && !$user->isAnonymous()) { $comment->created_user_id = $user->id; } $comment->save(); $request->getSession()->flash('success', trans('gallery.photo_comment_posted_successfully')); if ($request->isXmlHttpRequest()) { return response()->json(['redirect_url' => $photo->url()]); } else { return redirect($photo->url()); } } }