Ejemplo n.º 1
0
 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'));
 }
Ejemplo n.º 2
0
 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);
 }
Ejemplo n.º 3
0
 /**
  * Обновляет настройки сайта
  */
 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);
     });
 }
Ejemplo n.º 5
0
 /**
  * Display a listing of the resource.
  *
  * @return \Illuminate\Http\Response
  */
 public function index()
 {
     $bookings = Settings::all();
     return view('backend.settings.index', compact('bookings'));
 }