370 lines
11 KiB
PHP
370 lines
11 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use App\Models\Setting;
|
|
use Artisan;
|
|
use MehediIitdu\CoreComponentRepository\CoreComponentRepository;
|
|
|
|
class SettingController extends Controller
|
|
{
|
|
public function __construct()
|
|
{
|
|
$this->middleware(['permission:manage_profile_sections'])->only('member_profile_sections_configuration');
|
|
$this->middleware(['permission:header'])->only('website_header_settings');
|
|
$this->middleware(['permission:footer'])->only('website_footer_settings');
|
|
$this->middleware(['permission:appearances'])->only('website_appearances');
|
|
$this->middleware(['permission:general_settings'])->only('general_settings');
|
|
$this->middleware(['permission:payment_method_settings'])->only('payment_method_settings');
|
|
$this->middleware(['permission:smtp_settings'])->only('smtp_settings');
|
|
$this->middleware(['permission:third_party_settings'])->only('third_party_settings');
|
|
$this->middleware(['permission:social_media_login_settings'])->only('social_media_login_settings');
|
|
$this->middleware(['permission:system_update'])->only('system_update');
|
|
$this->middleware(['permission:server_status'])->only('system_server');
|
|
$this->middleware(['permission:firebase_push_notification'])->only('fcm_settings');
|
|
|
|
}
|
|
|
|
public function general_settings()
|
|
{
|
|
CoreComponentRepository::instantiateShopRepository();
|
|
CoreComponentRepository::initializeCache();
|
|
return view('admin.settings.general_settings');
|
|
}
|
|
|
|
public function smtp_settings()
|
|
{
|
|
return view('admin.settings.smtp_settings');
|
|
}
|
|
|
|
public function payment_method_settings()
|
|
{
|
|
CoreComponentRepository::instantiateShopRepository();
|
|
CoreComponentRepository::initializeCache();
|
|
return view('admin.settings.payment_method_settings');
|
|
}
|
|
|
|
public function third_party_settings(){
|
|
return view('admin.settings.third_party_settings');
|
|
}
|
|
|
|
public function member_profile_sections_configuration ()
|
|
{
|
|
return view('admin.member_profile_attributes.member_profile_sections.index');
|
|
}
|
|
|
|
public function social_media_login_settings(){
|
|
return view('admin.settings.social_media_login');
|
|
}
|
|
|
|
public function website_header_settings()
|
|
{
|
|
return view('admin.website_settings.header');
|
|
}
|
|
|
|
public function website_footer_settings()
|
|
{
|
|
return view('admin.website_settings.footer');
|
|
}
|
|
|
|
public function website_appearances()
|
|
{
|
|
return view('admin.website_settings.appearances');
|
|
}
|
|
|
|
public function system_update()
|
|
{
|
|
return view('admin.system.update');
|
|
}
|
|
public function system_server()
|
|
{
|
|
return view('admin.system.server_status');
|
|
}
|
|
|
|
|
|
/**
|
|
* Show the form for creating a new resource.
|
|
*
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function create()
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Store a newly created resource in storage.
|
|
*
|
|
* @param \Illuminate\Http\Request $request
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function store(Request $request)
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Display the specified resource.
|
|
*
|
|
* @param int $id
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function show($id)
|
|
{
|
|
//
|
|
|
|
}
|
|
|
|
/**
|
|
* Show the form for editing the specified resource.
|
|
*
|
|
* @param int $id
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function edit($id)
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Update the specified resource in storage.
|
|
*
|
|
* @param \Illuminate\Http\Request $request
|
|
* @param int $id
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function update(Request $request)
|
|
{
|
|
foreach ($request->types as $key => $type) {
|
|
if($type == 'site_name'){
|
|
$this->overWriteEnvFile('APP_NAME', $request[$type]);
|
|
}
|
|
|
|
if($type == 'timezone'){
|
|
$this->overWriteEnvFile('APP_TIMEZONE', $request[$type]);
|
|
}
|
|
else {
|
|
$settings = Setting::where('type', $type)->first();
|
|
if($settings != null){
|
|
if(gettype($request[$type]) == 'array'){
|
|
$settings->value = json_encode($request[$type]);
|
|
}
|
|
else {
|
|
$settings->value = $request[$type];
|
|
}
|
|
$settings->save();
|
|
}
|
|
else{
|
|
$settings = new Setting;
|
|
$settings->type = $type;
|
|
if(gettype($request[$type]) == 'array'){
|
|
$settings->value = json_encode($request[$type]);
|
|
}
|
|
else {
|
|
$settings->value = $request[$type];
|
|
}
|
|
$settings->save();
|
|
}
|
|
}
|
|
}
|
|
|
|
Artisan::call('cache:clear');
|
|
|
|
flash(translate("Settings updated successfully"))->success();
|
|
return back();
|
|
}
|
|
|
|
|
|
public function payment_method_update(Request $request)
|
|
{
|
|
foreach ($request->types as $key => $type) {
|
|
$this->overWriteEnvFile($type, $request[$type]);
|
|
}
|
|
|
|
$payemnt_sandbox = Setting::where('type', $request->payment_method.'_sandbox')->first();
|
|
if($payemnt_sandbox != null){
|
|
if ($request->has($request->payment_method.'_sandbox')) {
|
|
$payemnt_sandbox->value = 1;
|
|
$payemnt_sandbox->save();
|
|
}
|
|
else{
|
|
$payemnt_sandbox->value = 0;
|
|
$payemnt_sandbox->save();
|
|
}
|
|
}
|
|
|
|
$payemnt_activation = Setting::where('type', $request->payment_method.'_payment_activation')->first();
|
|
if( $payemnt_activation == null){
|
|
$payemnt_activation = new Setting;
|
|
$payemnt_activation->type = $request->payment_method.'_payment_activation';
|
|
$payemnt_activation->save();
|
|
}
|
|
|
|
if ($request->has($request->payment_method.'_payment_activation'))
|
|
{
|
|
$payemnt_activation->value = 1;
|
|
$payemnt_activation->save();
|
|
}
|
|
else
|
|
{
|
|
$payemnt_activation->value = 0;
|
|
$payemnt_activation->save();
|
|
}
|
|
|
|
Artisan::call('cache:clear');
|
|
|
|
flash(translate("Settings updated successfully"))->success();
|
|
return back();
|
|
}
|
|
|
|
public function third_party_settings_update(Request $request)
|
|
{
|
|
foreach ($request->types as $key => $type) {
|
|
$this->overWriteEnvFile($type, $request[$type]);
|
|
}
|
|
|
|
$activation = Setting::where('type', $request->setting_type.'_activation')->first();
|
|
if($activation != null){
|
|
if ($request->has($request->setting_type.'_activation')) {
|
|
$activation->value = 1;
|
|
$activation->save();
|
|
}
|
|
else{
|
|
$activation->value = 0;
|
|
$activation->save();
|
|
}
|
|
}
|
|
|
|
Artisan::call('cache:clear');
|
|
|
|
flash(translate("Settings updated successfully"))->success();
|
|
return back();
|
|
}
|
|
|
|
|
|
public function env_key_update(Request $request)
|
|
{
|
|
foreach ($request->types as $key => $type) {
|
|
$this->overWriteEnvFile($type, $request[$type]);
|
|
}
|
|
flash(translate("Settings has been updated successfully"))->success();
|
|
return back();
|
|
}
|
|
|
|
public function overWriteEnvFile($type, $val)
|
|
{
|
|
if(env('DEMO_MODE') != 'On'){
|
|
$path = base_path('.env');
|
|
if (file_exists($path)) {
|
|
$val = '"' . trim($val) . '"';
|
|
if (is_numeric(strpos(file_get_contents($path), $type)) && strpos(file_get_contents($path), $type) >= 0) {
|
|
file_put_contents($path, str_replace(
|
|
$type . '="' . env($type) . '"', $type . '=' . $val, file_get_contents($path)
|
|
));
|
|
} else {
|
|
file_put_contents($path, file_get_contents($path) . "\r\n" . $type . '=' . $val);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public function updateActivationSettings(Request $request)
|
|
{
|
|
$env_changes = ['FORCE_HTTPS'];
|
|
if (in_array($request->type, $env_changes)) {
|
|
|
|
return $this->updateActivationSettingsInEnv($request);
|
|
}
|
|
|
|
$settings = Setting::where('type', $request->type)->first();
|
|
if($settings!=null){
|
|
|
|
if ($request->type == 'maintenance_mode' && $request->value == '1') {
|
|
if(env('DEMO_MODE') != 'On'){
|
|
Artisan::call('down');
|
|
}
|
|
}
|
|
elseif ($request->type == 'maintenance_mode' && $request->value == '0') {
|
|
if(env('DEMO_MODE') != 'On') {
|
|
Artisan::call('up');
|
|
}
|
|
}
|
|
|
|
$settings->value = $request->value;
|
|
$settings->save();
|
|
|
|
Artisan::call('cache:clear');
|
|
|
|
return '1';
|
|
}
|
|
else {
|
|
return '0';
|
|
}
|
|
}
|
|
|
|
|
|
public function updateActivationSettingsInEnv($request)
|
|
{
|
|
if ($request->type == 'FORCE_HTTPS' && $request->value == '1') {
|
|
$this->overWriteEnvFile($request->type, 'On');
|
|
|
|
if(strpos(env('APP_URL'), 'http:') !== FALSE) {
|
|
$this->overWriteEnvFile('APP_URL', str_replace("http:", "https:", env('APP_URL')));
|
|
}
|
|
|
|
}
|
|
elseif ($request->type == 'FORCE_HTTPS' && $request->value == '0') {
|
|
$this->overWriteEnvFile($request->type, 'Off');
|
|
if(strpos(env('APP_URL'), 'https:') !== FALSE) {
|
|
$this->overWriteEnvFile('APP_URL', str_replace("https:", "http:", env('APP_URL')));
|
|
}
|
|
|
|
}
|
|
|
|
return '1';
|
|
}
|
|
|
|
/**
|
|
* Remove the specified resource from storage.
|
|
*
|
|
* @param int $id
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function destroy($id)
|
|
{
|
|
//
|
|
}
|
|
|
|
public function fcm_settings(){
|
|
return view('admin.settings.google_configurations.fcm');
|
|
}
|
|
|
|
public function fcm_settings_update(Request $request){
|
|
foreach ($request->types as $key => $type) {
|
|
$this->overWriteEnvFile($type, $request[$type]);
|
|
}
|
|
$settings = Setting::where('type', 'firebase_push_notification')->first();
|
|
if($settings){
|
|
if ($request->has('firebase_push_notification')) {
|
|
$settings->value = 1;
|
|
$settings->save();
|
|
}
|
|
else{
|
|
$settings->value = 0;
|
|
$settings->save();
|
|
}
|
|
}else{
|
|
$settings = new Setting();
|
|
$settings->type = 'firebase_push_notification';
|
|
$settings->value = 1;
|
|
$settings->save();
|
|
}
|
|
|
|
Artisan::call('cache:clear');
|
|
|
|
flash(translate("Settings updated successfully"))->success();
|
|
return back();
|
|
}
|
|
}
|