• File: TestimonialController.php
  • Full Path: /home/masbinta/public_html/core/app/Http/Controllers/Admin/TestimonialController.php
  • File size: 4.72 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php

namespace App\Http\Controllers\Admin;

use Session;
use App\Models\Language;
use App\Models\Testimonial;
use App\Models\Sectiontitle;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class TestimonialController extends Controller
{
    public $lang;
    public function __construct()
    {
        $this->lang = Language::where('is_default',1)->first();
    }

    public function testimonial(Request $request){
        $lang = Language::where('code', $request->language)->first()->id;
        
        $testimonials = Testimonial::where('language_id', $lang)->orderBy('id', 'DESC')->get();
        $saectiontitle = Sectiontitle::where('language_id', $lang)->first();

        return view('admin.home.testimonial.index', compact('testimonials', 'saectiontitle'));
    }

    //Add Testimonial
    public function add(){
        return view('admin.home.testimonial.add');
    }

    // Store Testimonial
    public function store(Request $request){
        
        $request->validate([
            'image' => 'required|mimes:jpeg,jpg,png',
            'name' => 'required|max:100',
            'position' => 'required|max:100',
            'rating' => 'required',
            'serial_number' => 'required',
            'message' => 'required|max:300',
        ]);

        $testimonial = new Testimonial();

        if($request->hasFile('image')){

            $file = $request->file('image');
            $extension = $file->getClientOriginalExtension();
            $image = time().rand().'.'.$extension;
            $file->move('assets/front/img/', $image);

            $testimonial->image = $image;
        }

        $testimonial->name = $request->name;
        $testimonial->language_id = $request->language_id;
        $testimonial->position = $request->position;
        $testimonial->rating = $request->rating;
        $testimonial->message = $request->message;
        $testimonial->serial_number = $request->serial_number;
        $testimonial->save();


        $notification = array(
            'messege' => 'Testimonial Added successfully!',
            'alert' => 'success'
        );
        return redirect()->back()->with('notification', $notification);

    }

    //Testimonial Delete
    public function delete($id){
       
        $testimonial = Testimonial::find($id);
        @unlink('assets/front/img/'. $testimonial->featured_image);
        $testimonial->delete();

        return back();
    }

    //Service Delete
    public function edit($id){
       
        $testimonial = Testimonial::find($id);
        return view('admin.home.testimonial.edit', compact('testimonial'));
    
    }

    // Testimonial Update
    public function update(Request $request, $id){

        $request->validate([
            'image' => 'mimes:jpeg,jpg,png',
            'name' => 'required|max:100',
            'position' => 'required|max:100',
            'rating' => 'required',
            'serial_number' => 'required',
            'message' => 'required|max:300',
        ]);

        $testimonial = Testimonial::find($id);
        if($request->hasFile('image')){
            @unlink('assets/front/img/'. $testimonial->image);
             
            $file = $request->file('image');
            $extension = $file->getClientOriginalExtension();
            $image = time().rand().'.'.$extension;
            $file->move('assets/front/img/', $image);

            $testimonial->image = $image;
        }
        $testimonial->name = $request->name;
        $testimonial->language_id = $request->language_id;
        $testimonial->position = $request->position;
        $testimonial->rating = $request->rating;
        $testimonial->message = $request->message;
        $testimonial->serial_number = $request->serial_number;
        $testimonial->save();

        $notification = array(
            'messege' => 'Testimonial Updated successfully!',
            'alert' => 'success'
        );
        return redirect(route('admin.testimonial').'?language='.$this->lang->code)->with('notification', $notification);


    }

    public function testimonialcontent(Request $request, $id){
        
        $request->validate([
            'testimonial_title' => 'required',
            'testimonial_subtitle' => 'required'
        ]);

        $testimonial_title = Sectiontitle::where('language_id', $id)->first();

        $testimonial_title->testimonial_title = $request->testimonial_title;
        $testimonial_title->testimonial_subtitle = $request->testimonial_subtitle;
        $testimonial_title->save();

        $notification = array(
            'messege' => 'Testimonial Content Updated successfully!',
            'alert' => 'success'
        );
        return redirect(route('admin.testimonial').'?language='.$this->lang->code)->with('notification', $notification);
    }
}