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!');
}
}