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