File manager - Edit - /home/linknsbh/restawy.online/app/Http/Controllers/Front/FrontendController.php
Back
<?php namespace App\Http\Controllers\Front; use App\Models\Faq; use App\Models\Seo; use App\Models\Blog; use App\Models\Page; use App\Models\User; use App\Models\Feature; use App\Models\Package; use App\Models\Partner; use App\Models\Process; use App\Models\Language; use App\Models\Bcategory; use App\Models\Subscriber; use App\Models\Testimonial; use Illuminate\Http\Request; use App\Models\OfflineGateway; use App\Models\PaymentGateway; use Illuminate\Support\Carbon; use App\Http\Helpers\MegaMailer; use Illuminate\Http\JsonResponse; use App\Models\BasicSetting as BS; use App\Models\BasicExtended as BE; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\Session; use Illuminate\Support\Facades\Validator; class FrontendController extends Controller { public function __construct() { $bs = BS::first(); $be = BE::first(); Config::set('captcha.sitekey', $bs->google_recaptcha_site_key); Config::set('captcha.secret', $bs->google_recaptcha_secret_key); Config::set('mail.host', $be->smtp_host); Config::set('mail.port', $be->smtp_port); Config::set('mail.username', $be->smtp_username); Config::set('mail.password', $be->smtp_password); Config::set('mail.encryption', $be->encryption); } public function index() { if (session()->has('lang')) { $currentLang = Language::where('code', session()->get('lang'))->first(); } else { $currentLang = Language::where('is_default', 1)->first(); } $lang_id = $currentLang->id; $bs = $currentLang->basic_setting; $be = $currentLang->basic_extended; $data['processes'] = Process::where('language_id', $lang_id)->orderBy('serial_number', 'ASC')->get(); $data['features'] = Feature::where('language_id', $lang_id)->orderBy('serial_number', 'ASC')->get(); $data['featured_users'] = User::query()->where([ ['featured', 1], ['status', 1] ]) ->whereNull('admin_id') ->whereHas('memberships', function ($q) { $q->where('status', '=', 1) ->where('start_date', '<=', Carbon::now()->format('Y-m-d')) ->where('expire_date', '>=', Carbon::now()->format('Y-m-d')); })->get(); $data['testimonials'] = Testimonial::where('language_id', $lang_id) ->orderBy('serial_number', 'ASC') ->get(); $data['blogs'] = Blog::where('language_id', $lang_id)->orderBy('id', 'DESC')->take(3)->get(); $data['packages'] = Package::query()->where('status', '1')->where('featured', '1')->get(); $data['partners'] = Partner::where('language_id', $lang_id) ->orderBy('serial_number', 'ASC') ->get(); $data['templates'] = User::query()->where([ ['preview_template', 1], ['status', 1], ['online_status', 1] ]) ->whereNull('admin_id') ->whereHas('memberships', function ($q) { $q->where('status', '=', 1) ->where('start_date', '<=', Carbon::now()->format('Y-m-d')) ->where('expire_date', '>=', Carbon::now()->format('Y-m-d')); }) ->orderBy('template_serial_number', 'ASC') ->get(); $data['seo'] = Seo::query()->where('language_id', $lang_id)->first(); $terms = []; if (Package::query()->where('status', '1')->where('featured', '1')->where('term', 'month')->count() > 0) { $terms[] = 'Month'; } if (Package::query()->where('status', '1')->where('featured', '1')->where('term', 'year')->count() > 0) { $terms[] = 'Year'; } if (Package::query()->where('status', '1')->where('featured', '1')->where('term', 'lifetime')->count() > 0) { $terms[] = 'Lifetime'; } $data['terms'] = $terms; $be = BE::select('package_features')->first(); $allPfeatures = $be->package_features ? $be->package_features : "[]"; $data['allPfeatures'] = json_decode($allPfeatures, true); return view('front.index', $data); } public function changeLanguage($lang): \Illuminate\Http\RedirectResponse { session()->put('lang', $lang); app()->setLocale($lang); return redirect()->route('front.index'); } public function users(Request $request) { if (session()->has('lang')) { $currentLang = Language::where('code', session()->get('lang'))->first(); } else { $currentLang = Language::where('is_default', 1)->first(); } $data['seo'] = Seo::query()->where('language_id', $currentLang->id)->first(); $userIds = []; $users = User::query() ->where('online_status', 1) ->whereHas('memberships', function ($q) { $q->where('status', '=', 1) ->where('start_date', '<=', Carbon::now()->format('Y-m-d')) ->where('expire_date', '>=', Carbon::now()->format('Y-m-d')); }) ->whereNull('admin_id') ->when($request->location, function ($q) use ($request) { return $q->where(function ($query) use ($request) { $query->where('address', 'like', '%' . $request->location . '%'); }); }) ->when($request->resturant, function ($q) use ($request) { return $q->where(function ($query) use ($request) { $query->where('restaurant_name', 'like', '%' . $request->resturant . '%'); }); }) ->orderBy('id', 'ASC') ->paginate(9); $data['users'] = $users; return view('front.users', $data); } public function step1($status, $id) { Session::forget('coupon'); Session::forget('coupon_amount'); if (Auth::guard('web')->check()) { return redirect()->route('user.plan.extend.index'); } $data['status'] = $status; $data['id'] = $id; $package = Package::findOrFail($id); $data['package'] = $package; $hasSubdomain = false; $features = []; if (!empty($package->features)) { $features = json_decode($package->features, true); } if (is_array($features) && in_array('Subdomain', $features)) { $hasSubdomain = true; } $data['hasSubdomain'] = $hasSubdomain; return view('front.step', $data); } public function step2(Request $request) { $data = $request->session()->get('data'); if (session()->has('coupon_amount')) { $data['cAmount'] = session()->get('coupon_amount'); } else { $data['cAmount'] = 0; } $stripe = PaymentGateway::query() ->where('keyword', 'Stripe') ->first(); if (!is_null($stripe->information)) { $stripe = json_decode($stripe->information, true); $data['stripe_key'] = $stripe['key']; } return view('front.checkout', $data); } public function checkout(Request $request) { $this->validate($request, [ 'username' => 'required|alpha_num|unique:users', 'email' => 'required|email|unique:users', 'password' => 'required|min:8|confirmed' ]); if (session()->has('lang')) { $currentLang = Language::query()->where('code', session()->get('lang'))->first(); } else { $currentLang = Language::query()->where('is_default', 1)->first(); } $seo = Seo::where('language_id', $currentLang->id)->first(); $be = $currentLang->basic_extended; $data['bex'] = $be; $data['username'] = $request->username; $data['email'] = $request->email; $data['password'] = $request->password; $data['status'] = $request->status; $data['id'] = $request->id; $online = PaymentGateway::query()->where('status', 1)->get(); $offline = OfflineGateway::query()->where('status', 1)->get(); $data['offline'] = $offline; $data['payment_methods'] = $online->merge($offline); $data['package'] = Package::query()->findOrFail($request->id); $data['seo'] = $seo; $request->session()->put('data', $data); return redirect()->route('front.registration.step2'); } public function paymentInstruction(Request $request): JsonResponse { $offline = OfflineGateway::query() ->where('name', $request->name) ->select('short_description', 'instructions', 'is_receipt') ->first(); return response()->json([ 'description' => $offline->short_description, 'instructions' => $offline->instructions, 'is_receipt' => $offline->is_receipt ]); } public function pricing(Request $request) { if (session()->has('lang')) { $currentLang = Language::where('code', session()->get('lang'))->first(); } else { $currentLang = Language::where('is_default', 1)->first(); } $data['seo'] = Seo::where('language_id', $currentLang->id)->first(); $data['bex'] = BE::first(); $data['abs'] = BS::first(); $terms = []; if (Package::query()->where('status', '1')->where('term', 'month')->count() > 0) { $terms[] = 'Month'; } if (Package::query()->where('status', '1')->where('term', 'year')->count() > 0) { $terms[] = 'Year'; } if (Package::query()->where('status', '1')->where('term', 'lifetime')->count() > 0) { $terms[] = 'Lifetime'; } $data['terms'] = $terms; $be = BE::select('package_features')->first(); $allPfeatures = $be->package_features ?? "[]"; $data['allPfeatures'] = json_decode($allPfeatures, true); return view('front.pricing', $data); } // blog section start public function blogs(Request $request) { if (session()->has('lang')) { $currentLang = Language::where('code', session()->get('lang'))->first(); } else { $currentLang = Language::where('is_default', 1)->first(); } $data['seo'] = Seo::where('language_id', $currentLang->id)->first(); $data['currentLang'] = $currentLang; $lang_id = $currentLang->id; $category = $request->category; if (!empty($category)) { $data['category'] = Bcategory::query()->findOrFail($category); } $term = $request->term; $data['bcats'] = Bcategory::query() ->where('language_id', $lang_id) ->where('status', 1) ->orderBy('serial_number', 'ASC') ->get(); $data['blogs'] = Blog::when($category, function ($query, $category) { return $query->where('bcategory_id', $category); })->when($term, function ($query, $term) { return $query->where('title', 'like', '%' . $term . '%'); })->when($currentLang, function ($query, $currentLang) { return $query->where('language_id', $currentLang->id); })->orderBy('serial_number', 'ASC') ->paginate(6); return view('front.blogs', $data); } public function blogDetails($slug, $id) { if (session()->has('lang')) { $currentLang = Language::where('code', session()->get('lang'))->first(); } else { $currentLang = Language::where('is_default', 1)->first(); } $lang_id = $currentLang->id; $data['blog'] = Blog::query()->findOrFail($id); // $data['bcats'] = Bcategory::query() // ->where('status', 1) // ->where('language_id', $lang_id) // ->orderBy('serial_number', 'ASC') // ->get(); $data['bcats'] = Bcategory::query() ->where('status', 1) ->where('language_id', $lang_id) ->orderBy('serial_number', 'ASC') ->withCount(['countBlogNumber as blogs_count' => function ($query) use ($lang_id) { $query->where('language_id', $lang_id); }]) ->get(); $data['allBlogs'] = Blog::query() ->where('language_id', $lang_id) ->get(); return view('front.blog-details', $data); } public function contact() { if (session()->has('lang')) { $currentLang = Language::where('code', session()->get('lang'))->first(); } else { $currentLang = Language::where('is_default', 1)->first(); } $data['seo'] = Seo::where('language_id', $currentLang->id)->first(); return view('front.contact', $data); } public function about_us() { if (session()->has('lang')) { $currentLang = Language::where('code', session()->get('lang'))->first(); } else { $currentLang = Language::where('is_default', 1)->first(); } $lang_id = $currentLang->id; $data['processes'] = Process::where('language_id', $lang_id)->orderBy('serial_number', 'ASC')->get(); $data['features'] = Feature::where('language_id', $lang_id)->orderBy('serial_number', 'ASC')->get(); $data['testimonials'] = Testimonial::where('language_id', $lang_id) ->orderBy('serial_number', 'ASC') ->get(); $data['seo'] = Seo::where('language_id', $currentLang->id)->first(); return view('front.about_us', $data); } public function adminContactMessage(Request $request) { $rules = [ 'name' => 'required', 'email' => 'required|email:rfc,dns', 'subject' => 'required', 'message' => 'required' ]; $bs = BS::query() ->select('is_recaptcha') ->first(); if ($bs->is_recaptcha == 1) { $rules['g-recaptcha-response'] = 'required|captcha'; } $messages = [ 'g-recaptcha-response.required' => 'Please verify that you are not a robot.', 'g-recaptcha-response.captcha' => 'Captcha error! try again later or contact site admin.', ]; $request->validate($rules, $messages); $data['fromMail'] = $request->email; $data['fromName'] = $request->name; $data['subject'] = $request->subject; $data['body'] = $request->message; $mailer = new MegaMailer(); $mailer->mailToAdmin($data); Session::flash('success', 'Message sent successfully'); return back(); } public function faqs() { if (session()->has('lang')) { $currentLang = Language::where('code', session()->get('lang'))->first(); } else { $currentLang = Language::where('is_default', 1)->first(); } $data['seo'] = Seo::where('language_id', $currentLang->id)->first(); $lang_id = $currentLang->id; $data['faqs'] = Faq::where('language_id', $lang_id) ->orderBy('serial_number', 'DESC') ->get(); return view('front.faq', $data); } public function dynamicPage($slug) { $data['page'] = Page::query() ->where('slug', $slug) ->first(); return view('front.dynamic', $data); } public function subscribe(Request $request) { $rules = [ 'email' => 'required|email|unique:subscribers' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return response()->json(array('errors' => $validator->getMessageBag()->toArray())); } $subsc = new Subscriber; $subsc->email = $request->email; $subsc->save(); return "success"; } public function checkUsername($username) { $count = User::where('username', $username)->count(); $status = $count > 0; return response()->json($status); } }
| ver. 1.4 |
Github
|
.
| PHP 8.2.31 | Generation time: 0.54 |
proxy
|
phpinfo
|
Settings