%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/html/sljcon/app/Http/Controllers/
Upload File :
Create Path :
Current File : /var/www/html/sljcon/app/Http/Controllers/FrontEndController.php

<?php

namespace App\Http\Controllers;

use App\Models\BeforeAfter;
use App\Models\Category;
use App\Models\Media;
use App\Models\Project;
use App\Models\Testimonial;
use App\Providers\MorphableName;
use Carbon\Carbon;
use Mail;
use Illuminate\Http\Request;

class FrontEndController extends Controller
{
    /**
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
     */
    public function HomePage()
    {
        $projects = Project::all();
        $categories = Category::all();
        $testimonials = Testimonial::query()
            ->where([
                ['isDeleted', false],
                ['isApproved', true]
            ])
            ->inRandomOrder()
            ->take(5)
            ->get();
        return view('welcome', [
            'projects' => $projects,
            'categories' => $categories,
            'testimonials' => $testimonials
        ]);
    }

    /**
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
     */
    public function AboutUs()
    {
        $projects = Project::all();
        $categories = Category::all();
        return view('about', [
            'projects' => $projects,
            'categories' => $categories
        ]);
    }

    /**
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
     */
    public function ContactUs()
    {
        return view('contact-us');
    }

    /**
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
     */
    public function OurProject()
    {
        $projects = Project::all();
        $categories = Category::all();
        $projectsType1 = Project::query()
            ->where('project_type', 1)
            ->get();
        return view('our-project', [
            'projects' => $projects,
            'categories' => $categories
        ]);
    }

    /**
     * @param $slug
     */
    public function ProjectDetails($slug)
    {
        $project = Project::query()
            ->where('slug', $slug)
            ->first();
        if ($project == null) {
            return http_response_code(404);
        }
        $relatedProjects = Project::query()
            ->inRandomOrder()
            ->take(9)
            ->get();
        return view('project-details', [
            'project' => $project,
            'relatedProjects' => $relatedProjects
        ]);
    }

    /**
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
     */
    public function Compare()
    {
        $beforeAndAfters = BeforeAfter::query()
            ->inRandomOrder()
            ->take(5)
            ->get();
        return view('compare', [
            'beforeAndAfters' => $beforeAndAfters
        ]);
    }

    /**
     * @param Request $request
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
     */
    public function SendMail(Request $request)
    {
        try {
            $data = array(
                'name' => $request['input_form_name'],
                'email' => $request['input_form_email'],
                'subject' => $request['input_form_subject'],
                'msg' => $request['input_form_message']
            );
            $contactInfo = array('email' => env('CONTACT_EMAIL'), 'name' => env('CONTACT_NAME'));
            Mail::send('email.newEmail', $data, function ($message) use ($contactInfo) {
                $message->to($contactInfo['email'], $contactInfo['email'])
                    ->subject('Nuova email dal tuo sito');
                $message->from('slj.costruzioni@gmail.com', 'SLJ Costruzioni');
            });
            return view('contact-us', ['msg' => 'L\'email è stata inviata con successo! Ti contatteremo al più presto.', 'msgSuccess' => true]);
        } catch (Exception $ex) {
            return view('contact-us', ['msg' => 'Email non inviata, riprova più tardi!', 'msgSuccess' => false]);
        }
    }

    /**
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
     */
    public function showTestimonialForm()
    {
        return view('testimonial.addForm', [
            'msg' => ''
        ]);
    }

    public function storeTestimonial(Request $request)
    {
        $data = $request->all();
        $rules = [
            'description' => 'required|string',
            'fullName' => 'required|string',
            'jobPosition' => 'required|string',
            'file' => 'required|image',
        ];
        $this->validate($request, $rules);
        $testimonial = Testimonial::query()
            ->create($data);
        if ($file = $request->file('file')) {
            $fileName = head(explode('.', $file->getClientOriginalName())) . Carbon::now()
                    ->formatLocalized('%d%m%Y%H%M%S') . '.' . last(explode('/', $file->getClientMimeType()));
            $file->move('uploads/testimonial', $fileName);
            Media::query()
                ->create([
                    'reference_id' => $testimonial->id,
                    'reference_type' => MorphableName::forClass(Testimonial::class),
                    'file_name' => $fileName,
                    'real_file_name' => $file->getClientOriginalName(),
                    'media_type' => Media::MEDIA_TYPE_TESTIMONIAL_IMAGE,
                ]);
        }
        return view('testimonial.addForm', [
            'msg' => 'Your testimonial was added successfully. Please wait for admin approve to publish on website.'
        ]);
    }
}

Zerion Mini Shell 1.0