public function display() { $settings = new \App\Classes\Settings(); $departments = $this->getDepartmentsAdmin(); $settingsRecords = []; if (session('department_filter_id')) { $settingsDB = Settings::where('department_id', session('department_filter_id'))->get(); } else { $settingsDB = Settings::all(); } foreach ($settingsDB as $setting) { $settingsRecords[$setting['department_id']][$setting['key']] = $setting['value']; } $departmentId = null; if (systemAccess(100)) { if (session('department_filter_id')) { $departmentId = session('department_filter_id'); } } else { $departmentId = auth()->user()->department_id; } if ($departmentId) { $userDepartment = []; foreach ($departments as $department) { if ($department->id == $departmentId) { $userDepartment = $department; break; } } $departments = [$userDepartment]; } $settings = $settings->getSettings($departments); return view('admin.settings.display', compact('settings', 'departments', 'settingsRecords')); }
public function __construct() { $this->globalSiteSettings = Cache::remember('settings', 3600, function () { $array = array(); $settings = Settings::all(); foreach ($settings as $setting) { $array = array_add($array, $setting->name, $setting->value); } return $array; }); view()->share('globalSiteSettings', $this->globalSiteSettings); }
/** * Обновляет настройки сайта */ public function postSettings(Request $request) { $rules = []; // Правила обработки $allSettings = App\Settings::all(); foreach ($allSettings as $item) { if ($item->rules) { $rules = array_add($rules, $item->name, $item->rules); } } // Валидация $this->validate($request, $rules); // Обновление данных каждого поля foreach ($request->except('_token') as $i => $val) { App\Settings::where('name', $i)->update(['value' => $val]); } // Удаляем закешированные настройки if (Cache::has('settings')) { Cache::forget('settings'); } // Возврашаем сообщение об успешном обновлении Session::flash('success', 'Данные успешно обновлены'); return redirect()->back(); }
/** * Bootstrap any application services. * * @return void */ public function boot() { /** * Register custom Validator */ Validator::extend('require_one_of_array', function ($attribute, $value, $parameters, $validator) { if (!is_array($value)) { return false; } foreach ($value as $k => $v) { if (!empty($v)) { return true; } } return false; }); /** * Get Admin Menu from DB */ view()->composer('admin.layout.admin_index_layout', function ($view) { $adminMenu = new AdminMenu(); $view->with('adminMenu', $adminMenu->getMenu()); $controller = Util::getController(); $view->with('controller', $controller); $view->with('controller_parent_id', $adminMenu->getParent($controller)); }); /** * Get Settings From DB */ $settings = Cache::rememberForever('settings', function () { return Settings::all(); }); if (!$settings->isEmpty()) { foreach ($settings as $k => $v) { config(['dc.' . $v->setting_name => $v->setting_value]); } } /** * Get Custom Pages From DB, Get Central Banner */ view()->composer('layout.index_layout', function ($view) { //header menu $headerMenu = Cache::rememberForever('headerMenu', function () { return Page::select('page_title', 'page_slug')->where('page_position', Page::HEADER_MENU)->where('page_active', 1)->orderBy('page_ord', 'ASC')->get(); }); $view->with('headerMenu', $headerMenu); //footer menu $footerMenu = Cache::rememberForever('footerMenu', function () { return Page::select('page_title', 'page_slug')->where('page_position', Page::FOOTER_MENU)->where('page_active', 1)->orderBy('page_ord', 'ASC')->get(); }); $view->with('footerMenu', $footerMenu); //get central banner if any $today = date('Y-m-d'); $centralBanner = Banner::where('banner_active_from', '<=', $today)->where('banner_active_to', '>=', $today)->where('banner_position', Banner::BANNER_POSITION_LIST)->orderByRaw('rand()')->take(1)->first(); if (!empty($centralBanner)) { $centralBanner->increment('banner_num_views'); } $view->with('centralBanner', $centralBanner); }); /** * get ad detail/ad contact banner */ view()->composer(['ad.detail', 'ad.contact'], function ($view) { $today = date('Y-m-d'); $adDetailBanner = Banner::where('banner_active_from', '<=', $today)->where('banner_active_to', '>=', $today)->where('banner_position', Banner::BANNER_POSITION_DETAIL)->orderByRaw('rand()')->take(1)->first(); if (!empty($adDetailBanner)) { $adDetailBanner->increment('banner_num_views'); } $view->with('adDetailBanner', $adDetailBanner); }); }
/** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { $bookings = Settings::all(); return view('backend.settings.index', compact('bookings')); }