src/Controllers/ChatterPostController.php
public function store(Request $request)
    {
        $stripped_tags_body = ['body' => strip_tags($request->body)];
        $validator = Validator::make($stripped_tags_body, [
            'body' => 'required|min:10',
        ],[
			'body.required' => trans('chatter::alert.danger.reason.content_required'),
			'body.min' => trans('chatter::alert.danger.reason.content_min'),
		]);

        Event::fire(new ChatterBeforeNewResponse($request, $validator));
        if (function_exists('chatter_before_new_response')) {
            chatter_before_new_response($request, $validator);
        }

        if ($validator->fails()) {
            return back()->withErrors($validator)->withInput();
        }

        if (config('chatter.security.limit_time_between_posts')) {
            if ($this->notEnoughTimeBetweenPosts()) {
                $minutes = trans_choice('chatter::messages.words.minutes', config('chatter.security.time_between_posts'));
                $chatter_alert = [
                    'chatter_alert_type' => 'danger',
                    'chatter_alert'      => trans('chatter::alert.danger.reason.prevent_spam', [
                                                'minutes' => $minutes,
                                            ]),
                    ];

                return back()->with($chatter_alert)->withInput();
            }
        }

        $request->request->add(['user_id' => Auth::user()->id]);

        if (config('chatter.editor') == 'simplemde'):
            $request->request->add(['markdown' => 1]);
        endif;

        $new_post = Models::post()->create($request->all());

        $discussion = Models::discussion()->find($request->chatter_discussion_id);

        $category = Models::category()->find($discussion->chatter_category_id);
        if (!isset($category->slug)) {
            $category = Models::category()->first();
        }

        if ($new_post->id) {
            $discussion->last_reply_at = $discussion->freshTimestamp();
            $discussion->save();
            
            Event::fire(new ChatterAfterNewResponse($request, $new_post));
            if (function_exists('chatter_after_new_response')) {
                chatter_after_new_response($request);
            }

            // if email notifications are enabled
            if (config('chatter.email.enabled')) {
                // Send email notifications about new post
                $this->sendEmailNotifications($new_post->discussion);
            }

            $chatter_alert = [
                'chatter_alert_type' => 'success',
                'chatter_alert'      => trans('chatter::alert.success.reason.submitted_to_post'),
                ];

            return redirect('/'.config('chatter.routes.home').'/'.config('chatter.routes.discussion').'/'.$category->slug.'/'.$discussion->slug)->with($chatter_alert);
        } else {
            $chatter_alert = [
                'chatter_alert_type' => 'danger',
                'chatter_alert'      => trans('chatter::alert.danger.reason.trouble'),
                ];

            return redirect('/'.config('chatter.routes.home').'/'.config('chatter.routes.discussion').'/'.$category->slug.'/'.$discussion->slug)->with($chatter_alert);
        }
    }
public function store(Request $request)
    {
        $stripped_tags_body = ['body' => strip_tags($request->body)];
        $validator = Validator::make($stripped_tags_body, [
            'body' => 'required|min:10',
        ],[
			'body.required' => trans('chatter::alert.danger.reason.content_required'),
			'body.min' => trans('chatter::alert.danger.reason.content_min'),
		]);

        Event::fire(new ChatterBeforeNewResponse($request, $validator));
        if (function_exists('chatter_before_new_response')) {
            chatter_before_new_response($request, $validator);
        }

        if ($validator->fails()) {
            return back()->withErrors($validator)->withInput();
        }

        if (config('chatter.security.limit_time_between_posts')) {
            if ($this->notEnoughTimeBetweenPosts()) {
                $minutes = trans_choice('chatter::messages.words.minutes', config('chatter.security.time_between_posts'));
                $chatter_alert = [
                    'chatter_alert_type' => 'danger',
                    'chatter_alert'      => trans('chatter::alert.danger.reason.prevent_spam', [
                                                'minutes' => $minutes,
                                            ]),
                    ];

                return back()->with($chatter_alert)->withInput();
            }
        }

        $request->request->add(['user_id' => Auth::user()->id]);

        if (config('chatter.editor') == 'simplemde'):
            $request->request->add(['markdown' => 1]);
        endif;

        $new_post = Models::post()->create($request->all());

        $discussion = Models::discussion()->find($request->chatter_discussion_id);

        $category = Models::category()->find($discussion->chatter_category_id);
        if (!isset($category->slug)) {
            $category = Models::category()->first();
        }

        if ($new_post->id) {
            $discussion->last_reply_at = $discussion->freshTimestamp();
            $discussion->save();
            
            Event::fire(new ChatterAfterNewResponse($request, $new_post));
            if (function_exists('chatter_after_new_response')) {
                chatter_after_new_response($request);
            }

            // if email notifications are enabled
            if (config('chatter.email.enabled')) {
                // Send email notifications about new post
                $this->sendEmailNotifications($new_post->discussion);
            }

            $chatter_alert = [
                'chatter_alert_type' => 'success',
                'chatter_alert'      => trans('chatter::alert.success.reason.submitted_to_post'),
                ];

            return redirect('/'.config('chatter.routes.home').'/'.config('chatter.routes.discussion').'/'.$category->slug.'/'.$discussion->slug)->with($chatter_alert);
        } else {
            $chatter_alert = [
                'chatter_alert_type' => 'danger',
                'chatter_alert'      => trans('chatter::alert.danger.reason.trouble'),
                ];

            return redirect('/'.config('chatter.routes.home').'/'.config('chatter.routes.discussion').'/'.$category->slug.'/'.$discussion->slug)->with($chatter_alert);
        }
    }
public function store ( Request $ request ) { $ stripped_tags_body = [ 'body' => strip_tags ( $ request -> body ) ] ; $ validator = Validator :: make ( $ stripped_tags_body , [ 'body' => 'required|min:10' , ] , [ 'body.required' => trans ( 'chatter::alert.danger.reason.content_required' ) , 'body.min' => trans ( 'chatter::alert.danger.reason.content_min' ) , ] ) ; Event :: fire ( new ChatterBeforeNewResponse ( $ request , $ validator ) ) ; if ( function_exists ( 'chatter_before_new_response' ) ) { chatter_before_new_response ( $ request , $ validator ) ; } if ( $ validator -> fails ( ) ) { return back ( ) -> withErrors ( $ validator ) -> withInput ( ) ; } if ( config ( 'chatter.security.limit_time_between_posts' ) ) { if ( $ this -> notEnoughTimeBetweenPosts ( ) ) { $ minutes = trans_choice ( 'chatter::messages.words.minutes' , config ( 'chatter.security.time_between_posts' ) ) ; $ chatter_alert = [ 'chatter_alert_type' => 'danger' , 'chatter_alert' => trans ( 'chatter::alert.danger.reason.prevent_spam' , [ 'minutes' => $ minutes , ] ) , ] ; return back ( ) -> with ( $ chatter_alert ) -> withInput ( ) ; } } $ request -> request -> add ( [ 'user_id' => Auth :: user ( ) -> id ] ) ; if ( config ( 'chatter.editor' ) == 'simplemde' ) : $ request -> request -> add ( [ 'markdown' => 1 ] ) ; endif ; $ new_post = Models :: post ( ) -> create ( $ request -> all ( ) ) ; $ discussion = Models :: discussion ( ) -> find ( $ request -> chatter_discussion_id ) ; $ category = Models :: category ( ) -> find ( $ discussion -> chatter_category_id ) ; if ( ! isset ( $ category -> slug ) ) { $ category = Models :: category ( ) -> first ( ) ; } if ( $ new_post -> id ) { $ discussion -> last_reply_at = $ discussion -> freshTimestamp ( ) ; $ discussion -> save ( ) ; Event :: fire ( new ChatterAfterNewResponse ( $ request , $ new_post ) ) ; if ( function_exists ( 'chatter_after_new_response' ) ) { chatter_after_new_response ( $ request ) ; } // if email notifications are enabled if ( config ( 'chatter.email.enabled' ) ) { // Send email notifications about new post $ this -> sendEmailNotifications ( $ new_post -> discussion ) ; } $ chatter_alert = [ 'chatter_alert_type' => 'success' , 'chatter_alert' => trans ( 'chatter::alert.success.reason.submitted_to_post' ) , ] ; return redirect ( '/' . config ( 'chatter.routes.home' ) . '/' . config ( 'chatter.routes.discussion' ) . '/' . $ category -> slug . '/' . $ discussion -> slug ) -> with ( $ chatter_alert ) ; } else { $ chatter_alert = [ 'chatter_alert_type' => 'danger' , 'chatter_alert' => trans ( 'chatter::alert.danger.reason.trouble' ) , ] ; return redirect ( '/' . config ( 'chatter.routes.home' ) . '/' . config ( 'chatter.routes.discussion' ) . '/' . $ category -> slug . '/' . $ discussion -> slug ) -> with ( $ chatter_alert ) ; } }
Store a newly created resource in storage.

@param \Illuminate\Http\Request $request

@return \Illuminate\Http\Response
Store a newly created resource in storage .