D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
forge
/
re-viewers.com
/
app
/
Http
/
Controllers
/
Admin
/
Filename :
SettingController.php
back
Copy
<?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Models\Setting; use Illuminate\Http\Request; use Illuminate\Support\Facades\Storage; class SettingController extends Controller { /** * Display the settings page. */ public function index() { $page_title = 'Settings'; // This is the correct line to use. // It finds the record with id=1, or creates a new one if it doesn't exist. $settings_row = Setting::firstOrCreate(['id' => 1]); return view('pages.settings.index', compact('page_title', 'settings_row')); } /** * Handle app settings form submission. */ public function updateAppSettings(Request $request) { $request->validate([ 'app_name' => 'required', 'app_email' => 'required|email', 'app_logo' => 'nullable|image|mimes:jpeg,png,jpg,gif|max:2048', ]); $settings = Setting::firstOrCreate(['id' => 1]); $data = $request->except(['_token', 'app_logo']); if ($request->hasFile('app_logo')) { if ($settings->app_logo) { Storage::disk('public')->delete('images/' . $settings->app_logo); } $logoName = time() . '.' . $request->file('app_logo')->getClientOriginalExtension(); $request->file('app_logo')->storeAs('images', $logoName, 'public'); $data['app_logo'] = $logoName; } $settings->update($data); return redirect()->route('settings.index')->with('success', 'App settings updated successfully.'); } /** * Handle ad settings form submission. */ public function updateAdSettings(Request $request) { $data = $request->except('_token', 'admob_submit', 'ad_type'); // Make sure boolean values are cast to booleans $data['interstital_ad'] = $request->has('interstital_ad'); $data['banner_ad'] = $request->has('banner_ad'); $data['nativ_ad'] = $request->has('nativ_ad'); $data['android_ad_network'] = $request->ad_type; // Explicitly cast to integer to prevent database errors $data['interstital_ad_click'] = (int) $request->input('interstital_ad_click', 0); $data['nativ_ad_click'] = (int) $request->input('nativ_ad_click', 0); $settings = Setting::firstOrCreate(['id' => 1]); $settings->update($data); return redirect()->route('settings.index')->with('success', 'Ad settings updated successfully.'); } /** * Handle API settings form submission. */ public function updateApiSettings(Request $request) { $data = $request->only(['api_page_limit', 'api_cat_order_by', 'api_cat_post_order_by']); $settings = Setting::firstOrCreate(['id' => 1]); $settings->update($data); return redirect()->route('settings.index')->with('success', 'API settings updated successfully.'); } /** * Handle app update popup settings. */ public function updateAppUpdate(Request $request) { $data = $request->except(['_token', 'app_update_popup']); $data['app_update_status'] = $request->has('app_update_status'); $data['cancel_update_status'] = $request->has('cancel_update_status'); $settings = Setting::firstOrCreate(['id' => 1]); $settings->update($data); return redirect()->route('settings.index')->with('success', 'App update settings saved successfully.'); } /** * Handle app FAQ form submission. */ public function updateFaq(Request $request) { $settings = Setting::firstOrCreate(['id' => 1]); $settings->update(['app_faq' => $request->app_faq]); return redirect()->route('settings.index')->with('success', 'App FAQ updated successfully.'); } /** * Handle privacy policy form submission. */ public function updatePrivacyPolicy(Request $request) { $settings = Setting::firstOrCreate(['id' => 1]); $settings->update(['app_privacy_policy' => $request->app_privacy_policy]); return redirect()->route('settings.index')->with('success', 'Privacy policy updated successfully.'); } /** * Handle terms & conditions form submission. */ public function updateTerms(Request $request) { $settings = Setting::firstOrCreate(['id' => 1]); $settings->update(['app_terms_conditions' => $request->app_terms_conditions]); return redirect()->route('settings.index')->with('success', 'Terms & conditions updated successfully.'); } /** * Handle account deletion instructions form submission. */ public function updateAccountDelete(Request $request) { $settings = Setting::firstOrCreate(['id' => 1]); $settings->update(['account_delete_intruction' => $request->account_delete_intruction]); return redirect()->route('settings.index')->with('success', 'Account deletion instructions updated successfully.'); } public function updateAbout(Request $request) { $request->validate([ 'about_us_description' => 'required|string', ]); // نفترض عندك جدول settings فيه صف واحد بيخزن القيم $settings = \App\Models\Setting::first(); if (!$settings) { $settings = new \App\Models\Setting(); } $settings->about_us_description = $request->about_us_description; $settings->save(); return redirect()->back()->with('success', 'About Us description updated successfully ✅'); } }