%PDF- %PDF-
Direktori : /var/www/html/sljcon/app/Http/Controllers/ |
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.' ]); } }