Esempio n. 1
0
 public function getComments()
 {
     return $this->hasMany(NewsComment::className(), ['news_id' => 'id']);
 }
 public function createComment(Request $request, $newsId)
 {
     $clientId = Authorizer::getClientId();
     $operatorId = (int) Authorizer::getResourceOwnerId();
     $news = News::findOrFail($newsId);
     $data = $request->all();
     $validator = Validator::make($data, ['content' => 'required']);
     if ($validator->fails() === true) {
         return response()->json(['error' => $validator->errors()], 400);
     }
     $data['news_id'] = $newsId;
     $data['app_id'] = $clientId;
     $data['author_id'] = $operatorId;
     $comment = new NewsComment($data);
     $comment->save();
     $news = $this->unfoldNewsInfo($news);
     return response()->json($news, 201);
 }
Esempio n. 3
0
 public function create($slug, News $news, Request $request)
 {
     /*-------------------------------------------------------------
       like newsComments
       ----------------------------------------------------------------*/
     if (isset($_POST['Like'])) {
         $comment_id = \Input::get('comment_id');
         // Записуєм id коментарія
         $selectLike = \DB::table('newsComment')->SELECT('Like', 'address')->WHERE('id', '=', $comment_id)->first();
         $increaseNumber = $selectLike->Like + 1;
         // Записуєм id коментарія
         $selectAddress = $selectLike->address;
         // Записуєм в зміну ip яка знаходиться в базі даних
         $userAddress = $_SERVER['REMOTE_ADDR'];
         // Записуєм ip користувача
         if ($selectAddress == $userAddress) {
             // Перевіряєм ip адресу щоб немож було голосувати 2 рази
             return $this->cart($slug, $news, $request)->with('textErrorIp', trans('translation.З_вашої_ip_уже_голосували'));
         } else {
             \DB::table('newsComment')->WHERE('id', '=', $comment_id)->UPDATE(['like' => $increaseNumber, 'address' => $userAddress]);
             return $this->cart($slug, $news, $request)->with('textLike', trans('translation.Вам_сподобалось'));
         }
     } elseif (isset($_POST['UnLike'])) {
         $comment_id = \Input::get('comment_id');
         // Записуєм id коментарія
         $selectLike = \DB::table('newsComment')->SELECT('UnLike', 'address')->WHERE('id', '=', $comment_id)->first();
         $increaseNumber = $selectLike->UnLike + 1;
         // Віднімаєм id коментарія
         $selectAddress = $selectLike->address;
         // Записуєм в зміну ip яка знаходиться в базі даних
         $userAddress = $_SERVER['REMOTE_ADDR'];
         // Записуєм ip користувача
         if ($selectAddress == $userAddress) {
             // Перевіряєм ip адресу щоб немож було голосувати 2 рази
             return $this->cart($slug, $news, $request)->with('textErrorIp', trans('translation.З_вашої_ip_уже_голосували'));
         } else {
             \DB::table('newsComment')->WHERE('id', '=', $comment_id)->UPDATE(['unlike' => $increaseNumber, 'address' => $userAddress]);
             return $this->cart($slug, $news, $request)->with('textUnLike', trans('translation.Вам_не_сподобалось'));
         }
     }
     /* -------------------------------------------------------------
                like newsComments
        ----------------------------------------------------------------*/
     /* -------------------------------------------------------------
        add ajax comments
        ----------------------------------------------------------------*/
     if ($request->has('body')) {
         /* Витягую з форми body для перевірки чи це форма є додати коментар */
         $validator = NewsComment::validate(\Input::all());
         if ($validator->fails()) {
             return Response::json(['success' => false, 'errors' => $validator->errors()->toArray()]);
         } else {
             $newsComment = new NewsComment();
             $newsComment->name = $request->get('name');
             $newsComment->email = $request->get('email');
             $newsComment->body = $request->get('body');
             $newsComment->news_id = $request->get('newsId');
             $newsComment->date = date("Y-m-d h:i:s");
             $newsComment->save();
             return Response::json(['success' => trans('translation.Ваш_коментар_успішно_добавлений')]);
         }
     }
     /* -------------------------------------------------------------
        add ajax comments
        ---------------------------------------------------------------- */
     /* -------------------------------------------------------------
        send errors news page
         ---------------------------------------------------------------- */
     $validatorError = NewsCommentError::validate(\Input::all());
     if ($validatorError->fails()) {
         return Response::json(['success' => false, 'errors' => $validatorError->errors()->toArray()]);
     } else {
         $newsCommentError = new NewsCommentError();
         $newsCommentError->news_id = $request->get('newsId');
         $newsCommentError->body = $request->get('bodyError');
         $newsCommentError->save();
         return Response::json(['success' => trans('translation.Дякуєм_вам_за_допомогу_ми_виправимо_помилку_в_найближчий_час')]);
     }
     /* -------------------------------------------------------------
        send errors news page
         ---------------------------------------------------------------- */
 }