Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
forbidals
/
gambling
/
app
/
Http
/
Controllers
:
SiteController.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace App\Http\Controllers; use App\Constants\Status; use App\Models\AdminNotification; use App\Models\Frontend; use App\Models\Game; use App\Models\Language; use App\Models\Page; use App\Models\Subscriber; use App\Models\SupportMessage; use App\Models\SupportTicket; use Carbon\Carbon; use Illuminate\Http\Request; use Illuminate\Support\Facades\Cookie; use Illuminate\Support\Facades\Validator; class SiteController extends Controller { public function index() { if (isset($_GET['reference'])) { $reference = $_GET['reference']; session()->put('reference', $reference); } $pageTitle = 'Home'; $sections = Page::where('tempname', activeTemplate())->where('slug', '/')->first(); $seoContents = $sections->seo_content; $seoImage = $seoContents?->image ? getImage(getFilePath('seo') . '/' . $seoContents?->image, getFileSize('seo')) : null; return view('Template::home', compact('pageTitle', 'sections', 'seoContents', 'seoImage')); } public function pages($slug) { $page = Page::where('tempname', activeTemplate())->where('slug', $slug)->firstOrFail(); $pageTitle = $page->name; $sections = $page->secs; $seoContents = $page->seo_content; $seoImage = $seoContents?->image ? getImage(getFilePath('seo') . '/' . $seoContents?->image, getFileSize('seo')) : null; return view('Template::pages', compact('pageTitle', 'sections', 'seoContents', 'seoImage')); } public function games() { $pageTitle = "Games"; $sections = Page::where('tempname', activeTemplate())->where('slug', 'games')->first(); $games = Game::active()->get(); return view('Template::games', compact('pageTitle', 'sections', 'games')); } public function contact() { $pageTitle = "Contact Us"; $user = auth()->user(); $sections = Page::where('tempname', activeTemplate())->where('slug', 'contact')->first(); $seoContents = $sections?->seo_content; $seoImage = $seoContents?->image ? getImage(getFilePath('seo') . '/' . $seoContents?->image, getFileSize('seo')) : null; return view('Template::contact', compact('pageTitle', 'user', 'sections', 'seoContents', 'seoImage')); } public function contactSubmit(Request $request) { $request->validate([ 'name' => 'required', 'email' => 'required', 'subject' => 'required|string|max:255', 'message' => 'required', ]); $request->session()->regenerateToken(); if (!verifyCaptcha()) { $notify[] = ['error', 'Invalid captcha provided']; return back()->withNotify($notify); } $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 = Carbon::now(); $ticket->status = Status::TICKET_OPEN; $ticket->save(); $adminNotification = new AdminNotification(); $adminNotification->user_id = auth()->user() ? auth()->user()->id : 0; $adminNotification->title = 'A new contact message has been submitted'; $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) { $policy = Frontend::where('tempname', activeTemplateName())->where('slug', $slug)->where('data_keys', 'policy_pages.element')->firstOrFail(); $pageTitle = $policy->data_values->title; $seoContents = $policy->seo_content; $seoImage = $seoContents?->image ? frontendImage('policy_pages', $seoContents?->image, getFileSize('seo'), true) : null; return view('Template::policy', compact('policy', 'pageTitle', 'seoContents', 'seoImage')); } public function changeLanguage($lang = null) { $language = Language::where('code', $lang)->first(); if (!$language) { $lang = 'en'; } session()->put('lang', $lang); return back(); } public function blog() { $blogs = Frontend::where('tempname', activeTemplateName())->where('data_keys', 'blog.element')->latest()->paginate(getPaginate(15)); $pageTitle = 'Blog'; $page = Page::where('tempname', activeTemplate())->where('slug', 'blog')->first(); $sections = $page?->secs; $seoContents = $page?->seo_content; $seoImage = $seoContents?->image ? frontendImage('policy_pages', $seoContents?->image, getFileSize('seo'), true) : null; return view('Template::blog', compact('blogs', 'pageTitle', 'sections', 'seoContents', 'seoImage')); } public function blogDetails($slug) { $blog = Frontend::where('slug', $slug)->where('data_keys', 'blog.element')->firstOrFail(); $blog->views += 1; $blog->save(); $pageTitle = 'Blog Detail'; $latestBlogs = Frontend::where('tempname', gs("active_template"))->where('id', '!=', $blog->id)->where('data_keys', 'blog.element')->orderBy('id', 'desc')->limit(5)->get(); $mostViews = Frontend::where('tempname', gs("active_template"))->where('id', '!=', $blog->id)->where('data_keys', 'blog.element')->orderBy('views', 'desc')->limit(5)->get(); $seoContents = $blog->seo_content; $seoImage = $seoContents?->image ? frontendImage('blog', $seoContents?->image, getFileSize('seo'), true) : null; return view('Template::blog_details', compact('blog', 'pageTitle', 'seoContents', 'seoImage', 'latestBlogs', 'mostViews')); } public function cookieAccept() { Cookie::queue('gdpr_cookie', gs('site_name'), 43200); } public function cookiePolicy() { $cookieContent = Frontend::where('data_keys', 'cookie.data')->first(); abort_if($cookieContent->data_values->status != Status::ENABLE, 404); $pageTitle = 'Cookie Policy'; $cookie = Frontend::where('data_keys', 'cookie.data')->first(); return view('Template::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/solaimanLipi_bold.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, 255, 255, 255); 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'; if (gs('maintenance_mode') == Status::DISABLE) { return to_route('home'); } $maintenance = Frontend::where('data_keys', 'maintenance.data')->first(); return view('Template::maintenance', compact('pageTitle', 'maintenance')); } public function subscribe(Request $request) { $validator = Validator::make($request->all(), [ 'email' => 'required|email', ]); if ($validator->fails()) { return response()->json(['error' => $validator->errors()]); } $emailExist = Subscriber::where('email', $request->email)->first(); if (!$emailExist) { $subscribe = new Subscriber(); $subscribe->email = $request->email; $subscribe->save(); return response()->json(['success' => 'Subscribed successfully']); } else { return response()->json(['error' => 'Already subscribed']); } } public function pwaConfiguration() { $gs = gs(); $json = [ "name" => $gs->site_name, "sign" => $gs->site_name, "start_url" => route('home'), "display" => "standalone", "background_color" => "#5900b3", "theme_color" => "black", "description" => $gs->site_name . " PWA", "icons" => [ [ "src" => getImage(getFilePath('logoIcon') . '/pwa_favicon.png'), "sizes" => "192x192", "type" => "image/png", ], [ "src" => getImage(getFilePath('logoIcon') . '/pwa_thumb.png'), "sizes" => "512x512", "type" => "image/png", ], ], ]; return response()->json($json); } }