ok
Direktori : /home2/selectio/www/billingsoftwarenew/core/app/Http/Controllers/ |
Current File : //home2/selectio/www/billingsoftwarenew/core/app/Http/Controllers/SiteController.php |
<?php namespace App\Http\Controllers; use App\Constants\Status; use App\Models\AdminNotification; use App\Models\Branch; use App\Models\DeviceToken; use App\Models\Frontend; use App\Models\Language; use App\Models\Page; use App\Models\Subscriber; use App\Models\SupportMessage; use App\Models\SupportTicket; use App\Models\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\Cookie; use Illuminate\Support\Facades\Validator; class SiteController extends Controller { public function index() { $reference = @$_GET['reference']; if ($reference) { session()->put('reference', $reference); } $pageTitle = 'Home'; $sections = Page::where('tempname', $this->activeTemplate)->where('slug', '/')->first(); return view($this->activeTemplate . 'home', compact('pageTitle', 'sections')); } public function pages($slug) { $page = Page::where('tempname', $this->activeTemplate)->where('slug', $slug)->firstOrFail(); $pageTitle = $page->name; $sections = $page->secs; return view($this->activeTemplate . 'pages', compact('pageTitle', 'sections')); } public function branches() { $pageTitle = "Our Branches"; $branches = Branch::active()->orderBy('name')->paginate(getPaginate()); return view($this->activeTemplate . 'branches', compact('pageTitle', 'branches')); } public function contact() { $pageTitle = "Contact Us"; return view($this->activeTemplate . 'contact', compact('pageTitle')); } public function contactSubmit(Request $request) { $request->validate([ 'name' => 'required', 'email' => 'required', 'subject' => 'required|string|max:255', 'message' => 'required', ]); $request->session()->regenerateToken(); $random = getNumber(); $ticket = new SupportTicket(); $ticket->user_id = auth()->id() ?? 0; $ticket->name = $request->name; $ticket->email = $request->email; $ticket->priority = Status::PRIORITY_MEDIUM; $ticket->ticket = $random; $ticket->subject = $request->subject; $ticket->last_reply = now(); $ticket->status = Status::TICKET_OPEN; $ticket->save(); $adminNotification = new AdminNotification(); $adminNotification->user_id = auth()->user() ? auth()->user()->id : 0; $adminNotification->title = 'A new support ticket has opened '; $adminNotification->click_url = urlPath('admin.ticket.view', $ticket->id); $adminNotification->save(); $message = new SupportMessage(); $message->support_ticket_id = $ticket->id; $message->message = $request->message; $message->save(); $notify[] = ['success', 'Ticket created successfully!']; return to_route('ticket.view', [$ticket->ticket])->withNotify($notify); } public function policyPages($slug, $id) { $policy = Frontend::where('id', $id)->where('data_keys', 'policy_pages.element')->firstOrFail(); $pageTitle = $policy->data_values->title; return view($this->activeTemplate . 'policy', compact('policy', 'pageTitle')); } public function changeLanguage($lang = null) { $language = Language::where('code', $lang)->first(); if (!$language) { $lang = 'en'; } session()->put('lang', $lang); return back(); } public function blogDetails($slug, $id) { $blog = Frontend::where('id', $id)->where('data_keys', 'blog.element')->firstOrFail(); $pageTitle = $blog->data_values->title; return view($this->activeTemplate . 'blog_details', compact('blog', 'pageTitle')); } public function cookieAccept() { $general = gs(); Cookie::queue('gdpr_cookie', $general->site_name, 43200); } public function cookiePolicy() { $pageTitle = 'Cookie Policy'; $cookie = Frontend::where('data_keys', 'cookie.data')->first(); return view($this->activeTemplate . 'cookie', compact('pageTitle', 'cookie')); } public function placeholderImage($size = null) { $imgWidth = explode('x', $size)[0]; $imgHeight = explode('x', $size)[1]; $text = $imgWidth . '×' . $imgHeight; $fontFile = realpath('assets/font/RobotoMono-Regular.ttf'); $fontSize = round(($imgWidth - 50) / 8); if ($fontSize <= 9) { $fontSize = 9; } if ($imgHeight < 100 && $fontSize > 30) { $fontSize = 30; } $image = imagecreatetruecolor($imgWidth, $imgHeight); $colorFill = imagecolorallocate($image, 100, 100, 100); $bgFill = imagecolorallocate($image, 175, 175, 175); imagefill($image, 0, 0, $bgFill); $textBox = imagettfbbox($fontSize, 0, $fontFile, $text); $textWidth = abs($textBox[4] - $textBox[0]); $textHeight = abs($textBox[5] - $textBox[1]); $textX = ($imgWidth - $textWidth) / 2; $textY = ($imgHeight + $textHeight) / 2; header('Content-Type: image/jpeg'); imagettftext($image, $fontSize, 0, $textX, $textY, $colorFill, $fontFile, $text); imagejpeg($image); imagedestroy($image); } public function maintenance() { $pageTitle = 'Maintenance Mode'; $general = gs(); if ($general->maintenance_mode == Status::DISABLE) { return to_route('home'); } $maintenance = Frontend::where('data_keys', 'maintenance.data')->first(); return view($this->activeTemplate . 'maintenance', compact('pageTitle', 'maintenance')); } public function addSubscriber(Request $request) { $validator = Validator::make($request->all(), [ 'email' => 'required|string|email|max:255|unique:subscribers,email', ]); if ($validator->fails()) { return response()->json(['error' => $validator->errors()->all()]); } $subscriber = new Subscriber(); $subscriber->email = $request->email; $subscriber->save(); return response()->json(['success' => true, 'message' => 'Subscribed successfully']); } public function registrationDisabled() { $pageTitle = "User Registration Disabled"; return view($this->activeTemplate . 'registration_disabled', compact('pageTitle')); } public function checkUser(Request $request) { $exist['data'] = false; $exist['type'] = null; if ($request->email) { $exist['data'] = User::where('email', $request->email)->exists(); $exist['type'] = 'email'; } if ($request->mobile) { $exist['data'] = User::where('mobile', $request->mobile)->exists(); $exist['type'] = 'mobile'; } if ($request->username) { $exist['data'] = User::where('username', $request->username)->exists(); $exist['type'] = 'username'; } return response($exist); } public function storeDeviceToken(Request $request) { $validator = Validator::make($request->all(), [ 'token' => 'required', ]); if ($validator->fails()) { return ['success' => false, 'errors' => $validator->errors()->all()]; } $deviceToken = DeviceToken::where('token', $request->token)->first(); if ($deviceToken) { return ['success' => true, 'message' => 'Already exists']; } $deviceToken = new DeviceToken(); $deviceToken->user_id = auth()->user()->id; $deviceToken->token = $request->token; $deviceToken->is_app = 0; $deviceToken->save(); return ['success' => true, 'message' => 'Token save successfully']; } }