⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.1
Server IP:
185.238.29.86
Server:
Linux server2 6.8.12-6-pve #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-6 (2024-12-19T19:05Z) x86_64
Server Software:
nginx/1.18.0
PHP Version:
8.1.31
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
var
/
www
/
muhasebe
/
modules
/
Core
/
Admin
/
View File Name :
SettingsController.php
<?php namespace Modules\Core\Admin; use Illuminate\Http\Request; use Illuminate\Support\Facades\App; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Session; use Modules\AdminController; use Modules\Core\Hook; use Modules\Core\Models\Settings; use Illuminate\Support\Facades\Cache; class SettingsController extends AdminController { protected $groups = []; public function __construct() { $this->setActiveMenu(route('core.admin.settings.index',['group'=>"general"])); } public function index($group) { if(empty($this->groups)){ $this->setGroups(); } $this->checkPermission('setting_update'); $settingsGroupKeys = array_keys($this->groups); if (empty($group) or !in_array($group, $settingsGroupKeys)) { $group = $settingsGroupKeys[0]; } $group_data = $this->groups[$group]; $breadcrumbs = [ [ 'name'=>$group_data['name'] ?? $group_data['title'] ?? $group] ]; if(!empty($group_data['active_menu'])){ $this->setActiveMenu($group_data['active_menu']); } if(!empty($group_data['breadcrumbs'])){ $breadcrumbs = $group_data['breadcrumbs']; } $data = [ 'current_group' => $group, 'groups' => $this->groups, 'settings' => Settings::getSettings($group), 'breadcrumbs' => $breadcrumbs, 'page_title' => $this->groups[$group]['name'] ?? $this->groups[$group]['title'] ?? $group, 'group' => $this->groups[$group], 'enable_multi_lang'=>true ]; return view('Core::admin.settings.index', $data); } public function store(Request $request, $group) { if(is_demo_mode()){ return redirect()->back()->with('danger',__("DEMO MODE: Disable setting update")); } if(empty($this->groups)){ $this->setGroups(); } $this->checkPermission('setting_update'); $settingsGroupKeys = array_keys($this->groups); if (empty($group) or !in_array($group, $settingsGroupKeys)) { $group = $settingsGroupKeys[0]; } $group_data = $this->groups[$group]; $keys = []; $htmlKeys = []; $filter_demo_mode = []; if(!empty($group_data['keys'])) $keys = $group_data['keys']; if(!empty($group_data['html_keys'])) $htmlKeys = $group_data['html_keys']; $filter_demo_mode = $group_data['filter_demo_mode'] ?? $filter_demo_mode; if(!is_demo_mode()){ $filter_demo_mode = []; } $lang = $request->input('lang'); if(is_default_lang($lang)) $lang = false; if ($group === 'style') { Settings::clearCustomCssCache(); } if (!empty($request->input())) { if (!empty($keys)) { $all_values = $request->input(); //If we found callback validate data before save if(!empty($group_data['filter_values_callback']) and is_callable($group_data['filter_values_callback'])) { $all_values = call_user_func($group_data['filter_values_callback'],$all_values,$request); } foreach ($keys as $key) { if(in_array($key,$filter_demo_mode)){ continue; } $setting_key = $key.($lang ? '_'.$lang : ''); $val = $all_values[$key] ?? ''; if (is_array($val)) { $val = json_encode($val); } if (in_array($key, $htmlKeys)) { $val = clean($val); } setting_update_item($setting_key,$val); } } do_action(Hook::AFTER_SETTING_SAVED, $group_data); //Clear Cache for currency Session::put('bc_current_currency',""); return redirect()->back()->with('success', __('Settings Saved')); } } protected function setGroups(){ $all = Settings::getSettingPages(); $res = []; if(!empty($all)) { foreach ($all as $item){ $res[$item['id']] = $item; } } $this->groups = $res; } }