HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ip-172-26-0-120 6.17.0-1009-aws #9~24.04.2-Ubuntu SMP Fri Mar 6 23:50:29 UTC 2026 x86_64
User: ubuntu (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: /var/www/html/orbidirectory.com/app/Http/Controllers/Admin/SettingController.php
<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use App\Models\Settings;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Validator;

class SettingController extends Controller
{
    public function settings()
    {
        $settings = new Settings();
        $data = $settings->getSettings();
        return view('admin.settings', $data);
    }

    public function updateLogo(Request $request)
    {
        $validator = Validator::make($request->all(), [
            'website_logo' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
            'website_footer_logo' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',

        ]);

        if ($validator->fails()) {
            return redirect()->back()->withErrors($validator)->withInput();
        }

        $websiteLogoSetting = Settings::firstOrCreate(['setting_name' => 'website_logo']);
        $footerLogoSetting = Settings::firstOrCreate(['setting_name' => 'website_footer_logo']);


        // Store new logo files
        if ($request->hasFile('website_logo')) {
            $websiteLogoSetting->addMediaFromRequest('website_logo')->toMediaCollection('website_logo');
        }

        if ($request->hasFile('website_footer_logo')) {
            $footerLogoSetting->addMediaFromRequest('website_footer_logo')->toMediaCollection('website_footer_logo');
        }



        return redirect()->back()->with('success', 'Logo updated successfully!');
    }



    public static function getLogoUrl()
    {
        $website_logo = Settings::where('setting_name', 'website_logo')->first();
        $website_footer_logo = Settings::where('setting_name', 'website_footer_logo')->first();

        $websiteLogoUrl = $website_logo ? $website_logo->getFirstMediaUrl('website_logo') : null;
        $footerLogoUrl = $website_footer_logo ? $website_footer_logo->getFirstMediaUrl('website_footer_logo') : null;

        // Debugging output
        logger()->info('Website Logo URL: ' . $websiteLogoUrl);
        logger()->info('Footer Logo URL: ' . $footerLogoUrl);

        return [
            'website_logo' => $websiteLogoUrl,
            'website_footer_logo' => $footerLogoUrl,
        ];
    }

    public function updateWebsiteDetails(Request $request)
    {
        $validator = Validator::make($request->all(), [
            'website_name' => 'required|max:255',
            'website_email' => 'required|email',
            'website_phone_number' => 'required|regex:/^[0-9-]+$/|min:3',
            'website_home_video' => 'nullable|mimes:mp4,avi,mkv|max:20480',
        ], [], ['website_name' => 'Website Name', 'website_email' => 'Website Email', 'website_phone_number' => 'Website Phone Number']);

        if ($validator->fails()) {
            return redirect()->back()->withErrors($validator)->withInput();
        }

        // update or create website name
        Settings::setValue('website_name', $request->website_name);
        // update or create website email
        Settings::setValue('website_email', $request->website_email);
        // update or create website  admin email notification
        Settings::setValue('notification_email', $request->notification_email);
        // update or create phone number
        Settings::setValue('website_phone_number', $request->website_phone_number);
        // Settings::setValue('website_home_video', $request->website_home_video);
        // update or create address
        Settings::setValue('address', $request->address);
        Settings::setValue('footer_description', $request->footer_description);
        Settings::setValue('website_description', $request->website_description);


        if ($request->hasFile('website_home_video')) {
            $file = $request->file('website_home_video');

            if ($file->isValid()) {
                $fileName = time() . '_' . $file->getClientOriginalName();
                try {
                    // Find or create the setting for website_home_video
                    $websiteVideoSetting = Settings::firstOrCreate(['setting_name' => 'website_home_video']);

                    // Remove the existing file from the collection
                    $websiteVideoSetting->clearMediaCollection('website_home_video');

                    // Add the new file to the collection
                    $websiteVideoSetting->addMedia($file)
                        ->usingFileName($fileName)
                        ->toMediaCollection('website_home_video');
                } catch (\Exception $e) {
                    Log::error("File upload error for website_home_video: " . $e->getMessage());
                    return redirect()->back()->with('error', "Failed to upload the website home video.");
                }
            } else {
                Log::error("Invalid file uploaded for website_home_video.");
                return redirect()->back()->with('error', "Failed to upload the website home video: Invalid file uploaded.");
            }
        }



        return redirect()->back()->with('message', 'Website details updated successfully!');
    }

    public function updateSocialLinks(Request $request)
    {
        // update or create facebook
        Settings::setValue('facebook_url', $request->facebook_url);
        Settings::setValue('facebook_status', $request->facebook_status);
        // update or create Twitter
        Settings::setValue('twitter_url', $request->twitter_url);
        Settings::setValue('twitter_status', $request->twitter_status);
        // update or create instagram
        Settings::setValue('instagram_url', $request->instagram_url);
        Settings::setValue('instagram_status', $request->instagram_status);
        // update or create whatsapp
        Settings::setValue('whatsapp_url', $request->whatsapp_url);
        Settings::setValue('whatsapp_status', $request->whatsapp_status);
        // update or create Linked In
        Settings::setValue('linkedin_url', $request->linkedin_url);
        Settings::setValue('linkedin_status', $request->linkedin_status);
        return redirect()->back()->with('message', 'Social Links updated successfully!');
    }
}