This commit is contained in:
Sanjay 2022-05-05 16:32:33 +05:30
parent 472eb9cf46
commit aedd5127cb
3 changed files with 33 additions and 2 deletions

View File

@ -57,20 +57,27 @@ class CMSPageDataGrid extends DataGrid
public function prepareActions()
{
$this->addAction([
'title' => trans('admin::app.datagrid.view'),
'method' => 'GET',
'route' => 'shop.cms.view.front',
'icon' => 'icon eye-icon',
]);
$this->addAction([
'title' => trans('admin::app.datagrid.edit'),
'method' => 'GET',
'route' => 'admin.cms.edit',
'icon' => 'icon pencil-lg-icon',
]);
$this->addAction([
'title' => trans('admin::app.datagrid.delete'),
'method' => 'POST',
'route' => 'admin.cms.delete',
'icon' => 'icon trash-icon',
]);
}
}
public function prepareMassActions()
{

View File

@ -15,6 +15,7 @@ class PagePresenterController extends Controller
*/
public function __construct(protected CmsRepository $cmsRepository)
{
$this->_config = request('_config');
}
/**
@ -29,4 +30,23 @@ class PagePresenterController extends Controller
return view('shop::cms.page')->with('page', $page);
}
/**
* Preview the CMS page from datagrid.
*
* @param int $id
* @return \Illuminate\View\View
*/
public function view($id)
{
$page = $this->cmsRepository->findOrFail($id);
request()->merge(['url_key' => $page->url_key]);
if (is_null($page)) {
abort(404);
}
return view($this->_config['view'], compact('page'));
}
}

View File

@ -24,6 +24,10 @@ Route::group(['middleware' => ['web', 'locale', 'theme', 'currency']], function
*/
Route::get('page/{slug}', [PagePresenterController::class, 'presenter'])->name('shop.cms.page');
Route::get('preview/{id}', [PagePresenterController::class, 'view'])->defaults('_config', [
'view' => 'shop::cms.page',
])->name('shop.cms.view.front');
/**
* Fallback route.
*/