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/spion/app/Http/Controllers/SettingController.php
<?php

namespace App\Http\Controllers;

use App\Models\Setting;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;

class SettingController extends Controller
{
    public function settings()
    {
        $settings = new Setting();
        $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 = Setting::firstOrCreate(['key' => 'website_logo']);
        $footerLogoSetting = Setting::firstOrCreate(['key' => '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 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_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
        Setting::setValue('website_name', $request->website_name);
        // update or create website email
        Setting::setValue('website_email', $request->website_email);
        // update or create website admin email notification
        Setting::setValue('notification_email', $request->notification_email);
        // update or create phone number
        Setting::setValue('website_phone_number', $request->website_phone_number);
        // update or create address
        Setting::setValue('address', $request->address);
        Setting::setValue('website_description', $request->website_description);
        return redirect()->back()->with('message', 'Website details updated successfully!');
    }

    public function updateSocialLinks(Request $request)
    {
        // update or create facebook
        Setting::setValue('facebook_url', $request->facebook_url);
        Setting::setValue('facebook_status', $request->facebook_status);
        // update or create Twitter
        Setting::setValue('twitter_url', $request->twitter_url);
        Setting::setValue('twitter_status', $request->twitter_status);
        // update or create instagram
        Setting::setValue('instagram_url', $request->instagram_url);
        Setting::setValue('instagram_status', $request->instagram_status);
        // update or create whatsapp
        Setting::setValue('whatsapp_url', $request->whatsapp_url);
        Setting::setValue('whatsapp_status', $request->whatsapp_status);
        // update or create Linked In
        Setting::setValue('linkedin_url', $request->linkedin_url);
        Setting::setValue('linkedin_status', $request->linkedin_status);

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