PHP 8.3.30
Preview: ViewController.php Size: 8.22 KB
/home/getspomw/royalsquad.us/app/Http/Controllers/ViewController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Setting;
use App\Models\Blog;
use Illuminate\Support\Facades\Mail;

class ViewController extends Controller
{
    // Function to get meta data based on slug
    private function getMetaData($slug)
    {
        // Convert slug format according to table
        $slug = str_replace('-', '_', $slug); // Convert hyphen to underscore

        $meta = Setting::whereIn('type', [
            "title_{$slug}",
            "description_{$slug}",
            "keywords_{$slug}"
        ])->pluck('value', 'type');

        return [
            'meta_title' => $meta["title_{$slug}"] ?? 'Default Title',
            'meta_description' => $meta["description_{$slug}"] ?? 'Default Description',
            'meta_keywords' => $meta["keywords_{$slug}"] ?? 'Default Keywords',
        ];
    }

    public function index()
    {
        $meta = $this->getMetaData('home');
        return view('frontend.home', $meta);
    }
    public function about()
    {
        $meta = $this->getMetaData('about');
        return view('frontend.about', $meta);
    }
    public function blogs()
    {

        // $data = Blog::orderBy('id', 'desc')->get();
        $data = Blog::latest()->paginate(9);
        $meta = $this->getMetaData('blogs');
        return view('frontend.blog', compact('meta', 'data'));
    }
    // public function blogDetails($slug)
    // {
    //     $blog = Blog::where('slug', $slug)->firstOrFail();

    //     $recentBlogs = Blog::orderBy('id', 'desc')->where('id', '!=', $blog->id)->take(5)->get();
    //     $meta = $this->getMetaData('blog');
    //     return view('frontend.blog_details', compact('blog', 'meta', 'recentBlogs'));
    // }
    public function blogDetails($slug)
    {
        $blog = Blog::where('slug', $slug)->firstOrFail();

        $recentBlogs = Blog::orderBy('id', 'desc')->where('id', '!=', $blog->id)->take(5)->get();

        // Get generic meta data from settings
        $genericMeta = $this->getMetaData('blog');

        // Prepare meta data, prefer blog-specific but fallback to generic
        $meta_title = $blog->meta_title ?: $genericMeta['meta_title'];
        $meta_description = $blog->meta_description ?: $genericMeta['meta_description'];
        $meta_keywords = $blog->meta_keywords ?: $genericMeta['meta_keywords'];

        return view('frontend.blog_details', [
            'blog' => $blog,
            'recentBlogs' => $recentBlogs,
            'meta_title' => $meta_title,
            'meta_description' => $meta_description,
            'meta_keywords' => $meta_keywords,
        ]);
    }

    public function error()
    {
        return view('frontend.404-error');
    }

    public function contact()
    {
        $meta = $this->getMetaData('Contact');
        return view('frontend.contact', $meta);
    }
    public function faq()
    {
        $meta = $this->getMetaData('faq');
        return view('frontend.faq', $meta);
    }
    public function homenetworking()
    {
        $meta = $this->getMetaData('Home_Networking');
        return view('frontend.home-networking', $meta);
    }
    public function digitalmarketing()
    {
        $meta = $this->getMetaData('Digital_Marketing');
        return view('frontend.digital-marketing', $meta);
    }
    public function emailservices()
    {
        $meta = $this->getMetaData('Email_Services');
        return view('frontend.email-services', $meta);
    }
    public function anitvirussecuritysoftware()
    {
        $meta = $this->getMetaData('Antivirus_and_Security_Software_Support');
        return view('frontend.anitvirus-security-software', $meta);
    }
    public function appdevelopment()
    {
        $meta = $this->getMetaData('App_Development');
        return view('frontend.app-development', $meta);
    }
    public function applemacios()
    {
        $meta = $this->getMetaData('Apple_Mac_Ios');
        return view('frontend.apple-mac-ios', $meta);
    }
    public function businessservices()
    {
        $meta = $this->getMetaData('businessservices');
        return view('frontend.business-services', $meta);
    }
    public function computertuneups()
    {
        $meta = $this->getMetaData('Computer_Tune_Ups');
        return view('frontend.computer-tune-ups', $meta);
    }
    public function databackupsservices()
    {
        $meta = $this->getMetaData('databackupsservices');
        return view('frontend.data-backups-services', $meta);
    }
    public function internentconectivity()
    {
        $meta = $this->getMetaData('Internet_Connectivity');
        return view('frontend.internent-conectivity', $meta);
    }
    public function microsoftwindows()
    {
        $meta = $this->getMetaData('Microsoft_Windows');
        return view('frontend.microsoft-windows', $meta);
    }
    public function printermultifunction()
    {
        $meta = $this->getMetaData('Printer_Multi_function');
        return view('frontend.printer-multifunction', $meta);
    }
    public function privacypolicy()
    {
        $meta = $this->getMetaData('privacypolicy');
        return view('frontend.privacy-policy', $meta);
    }
    public function refundpolicy()
    {
        $meta = $this->getMetaData('refundpolicy');
        return view('frontend.refund-policy', $meta);
    }

    public function terms()
    {
        $meta = $this->getMetaData('terms');
        return view('frontend.terms', $meta);
    }
    public function thanku()
    {
        $meta = $this->getMetaData('thanku');
        return view('frontend.thanku', $meta);
    }
    public function programerrorscrashes()
    {
        $meta = $this->getMetaData('Program_error_crashes');
        return view('frontend.program-errors-crashes', $meta);
    }
    public function smartphonestablet()
    {
        $meta = $this->getMetaData('Smartphones_Tablet');
        return view('frontend.smartphones-tablet', $meta);
    }
    public function softwareapplication()
    {
        $meta = $this->getMetaData('Software_application');
        return view('frontend.software-application', $meta);
    }
    public function trainingguidence()
    {
        $meta = $this->getMetaData('Training_and_Guidance');
        return view('frontend.training-guidence', $meta);
    }
    public function uiuxdesign()
    {
        $meta = $this->getMetaData('UI/UX_Design');
        return view('frontend.ui-ux-design', $meta);
    }
    public function virusmalwareremoval()
    {
        $meta = $this->getMetaData('virus_malware_removal');
        return view('frontend.virus-malware-removal', $meta);
    }
    public function webagency()
    {
        $meta = $this->getMetaData('webagency');
        return view('frontend.web-agency', $meta);
    }
    public function webdevelopment()
    {
        $meta = $this->getMetaData('Web_Development');
        return view('frontend.web-development', $meta);
    }
    public function wificonnectivity()
    {
        $meta = $this->getMetaData('Wifi-Connectivity');
        return view('frontend.wifi-connectivity', $meta);
    }
    public function checkout()
    {

        return view('frontend.checkout');
    }

    public function subscribe(Request $request)
    {
        $request->validate([
            'email' => 'required|email'
        ]);

        $subscriberEmail = $request->email;
        $adminEmail = env('MAIL_FROM_ADDRESS');

        try {
            Mail::raw(
                "Thanks for subscribing to RoyalSquad 🎉\nWe’re excited to have you!",
                function ($message) use ($subscriberEmail) {
                    $message->to($subscriberEmail)
                        ->subject('Welcome to RoyalSquad Newsletter');
                }
            );
            Mail::raw(
                "📢 New Newsletter Subscription\n\nSubscriber Email: {$subscriberEmail}",
                function ($message) use ($adminEmail) {
                    $message->to($adminEmail)
                        ->subject('New Newsletter Subscriber');
                }
            );

            return response()->json([
                'status' => 'success',
                'message' => '✅ Subscription successful!'
            ]);

        } catch (\Exception $e) {
            return response()->json([
                'status' => 'error',
                'message' => '❌ Something went wrong. Try again.'
            ], 500);
        }
    }
}

Directory Contents

Dirs: 0 × Files: 12

Name Size Perms Modified Actions
2.85 KB lrw-rw-rw- 2025-09-18 05:50:45
Edit Download
315 B lrw-rw-rw- 2025-09-17 06:52:53
Edit Download
2.74 KB lrw-rw-rw- 2025-09-17 06:52:53
Edit Download
6.83 KB lrw-rw-rw- 2025-09-17 06:52:53
Edit Download
4.65 KB lrw-rw-rw- 2026-02-09 06:01:39
Edit Download
77 B lrw-rw-rw- 2025-09-17 06:52:53
Edit Download
2.80 KB lrw-rw-rw- 2025-09-18 05:51:38
Edit Download
616 B lrw-r--r-- 2026-04-19 15:59:24
Edit Download
3.58 KB lrw-rw-rw- 2025-09-18 05:56:23
Edit Download
1.48 KB lrw-rw-rw- 2025-09-17 06:52:53
Edit Download
8.60 KB lrw-rw-rw- 2025-09-18 05:56:47
Edit Download
8.22 KB lrw-rw-rw- 2026-02-09 07:03:26
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).