Files
wticreatorstudio/Modules/HomePageSwitcher/Http/Controllers/HomePageSwitcherController.php
T
2024-02-12 22:54:20 -05:00

78 lines
2.8 KiB
PHP

<?php
namespace Modules\HomePageSwitcher\Http\Controllers;
use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Brian2694\Toastr\Facades\Toastr;
use Modules\HomePageSwitcher\Http\Requests\SaveRequest;
use Modules\FrontendCMS\Entities\DynamicPage;
use \Modules\GeneralSetting\Repositories\GeneralSettingRepository;
use Modules\UserActivityLog\Traits\LogActivity;
use Modules\HomePageSwitcher\Services\AugmentationService;
use Modules\PageBuilderPlus\Entities\GJSPage;
class HomePageSwitcherController extends Controller
{
protected $dynamicPage;
protected $generalSettingRepository;
public function __construct(DynamicPage $dynamicPage, GeneralSettingRepository $generalSettingRepository)
{
$this->middleware('maintenance_mode');
$this->dynamicPage = $dynamicPage;
$this->generalSettingRepository = new $generalSettingRepository;
}
/**
* Display a listing of the resource.
* @return Renderable
*/
public function index()
{
try{
new AugmentationService();
if (isModuleActive('PageBuilderPlus')) {
$pages_list = GJSPage::orderBy('title')->get();
$generalSetting = $this->generalSettingRepository->all();
$homepage = $generalSetting->homepage;
$homepage_redirect = $generalSetting->homepage_redirect;
$homepage_type = $generalSetting->homepage_type;
return view('homepageswitcher::index',compact('pages_list','homepage','homepage_redirect','homepage_type'));
}
else {
$pages_list = $this->dynamicPage->select(['slug','title'])->where('is_page_builder',1)->orderBy('title')->get();
$homepage_slug = $this->generalSettingRepository->all()->homepage_slug;
return view('homepageswitcher::index',compact('pages_list','homepage_slug'));
}
}catch(Exception $e){
Toastr::error($e->getMessage(), 'Error!!');
return response()->json(['error' => $e->getMessage()],503);
}
}
/**
* Update the specified resource in storage.
* @param Request $request
* @param int $id
* @return Renderable
*/
public function save(SaveRequest $request)
{
try {
$this->generalSettingRepository->update($request->except("_token"));
LogActivity::successLog('Home Page updated.');
Toastr::success(__('Homepage has been updated successfully'), __('common.success'));
return back();
} catch (\Exception $e) {
LogActivity::errorLog($e->getMessage());
Toastr::error(__('common.operation_failed'));
return back();
}
}
}