mirror of
https://github.com/Bigherollc/wticreatorstudio.git
synced 2026-07-31 14:16:57 -04:00
305 lines
9.1 KiB
PHP
305 lines
9.1 KiB
PHP
<?php
|
|
|
|
namespace Modules\PageBuilderPlus\Http\Controllers;
|
|
|
|
use App\Models\MediaManager;
|
|
use Illuminate\Contracts\Support\Renderable;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Routing\Controller;
|
|
use Modules\PageBuilderPlus\Entities\GJSPage;
|
|
use Modules\PageBuilderPlus\Entities\GJSTemplate;
|
|
use Modules\PageBuilderPlus\Services\AugmentationService;
|
|
use Modules\PageBuilderPlus\Services\CommonService;
|
|
|
|
class PageBuilderPlusController extends Controller
|
|
{
|
|
/**
|
|
* Display a listing of the resource.
|
|
* @return Renderable
|
|
*/
|
|
public function index()
|
|
{
|
|
new AugmentationService();
|
|
|
|
return view('pagebuilderplus::index');
|
|
}
|
|
|
|
/**
|
|
* Show the form for creating a new resource.
|
|
* @return Renderable
|
|
*/
|
|
public function create()
|
|
{
|
|
return view('pagebuilderplus::create');
|
|
}
|
|
|
|
/**
|
|
* Store a newly created resource in storage.
|
|
* @param Request $request
|
|
* @return Renderable
|
|
*/
|
|
public function store(Request $request)
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Show the specified resource.
|
|
* @param int $id
|
|
* @return Renderable
|
|
*/
|
|
public function show($id)
|
|
{
|
|
return view('pagebuilderplus::show');
|
|
}
|
|
|
|
/**
|
|
* Show the form for editing the specified resource.
|
|
* @param int $id
|
|
* @return Renderable
|
|
*/
|
|
public function edit($id)
|
|
{
|
|
return view('pagebuilderplus::edit');
|
|
}
|
|
|
|
/**
|
|
* Update the specified resource in storage.
|
|
* @param Request $request
|
|
* @param int $id
|
|
* @return Renderable
|
|
*/
|
|
public function update(Request $request, $id)
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Remove the specified resource from storage.
|
|
* @param int $id
|
|
* @return Renderable
|
|
*/
|
|
public function destroy($id)
|
|
{
|
|
//
|
|
}
|
|
|
|
public function getPermissions() {
|
|
return [
|
|
'list' => permissionCheck('pagebuilderplus_list_pages'),
|
|
'create' => permissionCheck('pagebuilderplus_create_page'),
|
|
'edit' => permissionCheck('pagebuilderplus_edit_page'),
|
|
'delete' => permissionCheck('pagebuilderplus_delete_page'),
|
|
'design' => permissionCheck('pagebuilderplus_design_page'),
|
|
'preview' => permissionCheck('pagebuilderplus_preview_page')
|
|
];
|
|
}
|
|
|
|
public function getAllPages() {
|
|
$pages = GJSPage::orderBy('title')->get();
|
|
|
|
return response()->json([
|
|
'message' => 'success',
|
|
'pages' => $pages
|
|
]);
|
|
}
|
|
|
|
public function getPage(Request $request) {
|
|
$page = GJSPage::find($request->id);
|
|
|
|
if ($page) {
|
|
$data = json_decode($page->data);
|
|
return response()->json([
|
|
'message' => 'success',
|
|
'page' => $page,
|
|
'data' => $data
|
|
]);
|
|
}
|
|
}
|
|
|
|
public function createPage(Request $request) {
|
|
$page = new GJSPage();
|
|
$page->title = $request->title;
|
|
$page->slug = $request->slug;
|
|
if ($request->has('data')) {
|
|
$page->data = json_encode($request->data);
|
|
}
|
|
$page->save();
|
|
|
|
return response()->json([
|
|
'status' => 200,
|
|
'message' => 'New page has been created.'
|
|
]);
|
|
}
|
|
|
|
public function updatePage(Request $request) {
|
|
$page = GJSPage::find($request->id);
|
|
if ($page) {
|
|
$page->title = $request->title;
|
|
$page->slug = $request->slug;
|
|
$page->update();
|
|
|
|
return response()->json([
|
|
'status' => 200,
|
|
'message' => 'Page has been successfully updated.'
|
|
]);
|
|
}
|
|
}
|
|
|
|
public function copyPage(Request $request) {
|
|
$page = GJSPage::find($request->id);
|
|
if ($page) {
|
|
$npage = new GJSPage();
|
|
$npage->fill($page->toArray());
|
|
$npage->save();
|
|
|
|
return response()->json([
|
|
'status' => 200,
|
|
'message' => 'Page has been duplicated.'
|
|
]);
|
|
}
|
|
}
|
|
|
|
public function deletePage(Request $request) {
|
|
$page = GJSPage::find($request->id);
|
|
if ($page) {
|
|
$page->delete();
|
|
|
|
return response()->json([
|
|
'status' => 200,
|
|
'message' => 'Page has been successfully deleted.'
|
|
]);
|
|
}
|
|
}
|
|
|
|
public function designPage(Request $request) {
|
|
$page = GJSPage::find($request->id);
|
|
|
|
if ($page) {
|
|
$pageId = $page->id;
|
|
}
|
|
|
|
return view('pagebuilderplus::designer', compact('pageId'));
|
|
}
|
|
|
|
public function savePage(Request $request) {
|
|
$page = GJSPage::find($request->id);
|
|
|
|
if ($page) {
|
|
$page->data = $request->data;
|
|
$page->html = $request->html;
|
|
$page->css = $request->css;
|
|
$page->js = $request->js;
|
|
$page->assets = $request->assets;
|
|
$page->pages = $request->pages;
|
|
$page->styles = $request->styles;
|
|
$page->global_css = $request->global_css;
|
|
$page->update();
|
|
|
|
return response()->json([
|
|
'status' => 200,
|
|
'message' => 'Page has been saved.'
|
|
]);
|
|
}
|
|
}
|
|
|
|
public function loadPage(Request $request) {
|
|
$page = GJSPage::find($request->id);
|
|
if ($page->data) {
|
|
$page->data = json_decode($page->data);
|
|
}
|
|
return $page;
|
|
}
|
|
|
|
public function showPage(Request $request) {
|
|
$page = GJSPage::find($request->id);
|
|
|
|
if ($page) {
|
|
$html = $page->html;
|
|
$css = $page->css;
|
|
$global_css = $page->global_css;
|
|
|
|
return view('pagebuilderplus::show', compact('html', 'css', 'global_css'));
|
|
}
|
|
}
|
|
|
|
public function displayPage(Request $request, $slug) {
|
|
$page = GJSPage::where('slug', $slug)->first();
|
|
|
|
if ($page) {
|
|
$html = $page->html;
|
|
$css = $page->css;
|
|
$global_css = $page->global_css;
|
|
|
|
return view('pagebuilderplus::show', compact('html', 'css', 'global_css'));
|
|
}
|
|
}
|
|
|
|
public function getMediaFiles($data = null){
|
|
$query = MediaManager::query();
|
|
$seller_id = getParentSellerId();
|
|
$query = $query->where('user_id', $seller_id);
|
|
if(isset($data['search']) && !empty($data['search'])){
|
|
$slugs = explode(' ', $data['search']);
|
|
if(isset($data['sort']) && $data['sort'] != 'newest'){
|
|
if($data['sort'] == 'oldest'){
|
|
$query = $query->orderBy('id','asc')->where(function($q) use($slugs){
|
|
foreach($slugs as $slug){
|
|
$q = $q->orWhere('orginal_name', 'LIKE', "%{$slug}%");
|
|
}
|
|
return $q;
|
|
});
|
|
}elseif($data['sort'] == 'smallest'){
|
|
$query = $query->orderBy('size')->where(function($q) use($slugs){
|
|
foreach($slugs as $slug){
|
|
$q = $q->orWhere('orginal_name', 'LIKE', "%{$slug}%");
|
|
}
|
|
return $q;
|
|
});
|
|
}
|
|
elseif($data['sort'] == 'bigest'){
|
|
$query = $query->orderByDesc('size')->where(function($q) use($slugs){
|
|
foreach($slugs as $slug){
|
|
$q = $q->orWhere('orginal_name', 'LIKE', "%{$slug}%");
|
|
}
|
|
return $q;
|
|
});
|
|
}
|
|
}
|
|
$query = $query->orderByDesc('id')->where(function($q) use($slugs){
|
|
foreach($slugs as $slug){
|
|
$q = $q->orWhere('orginal_name', 'LIKE', "%{$slug}%");
|
|
}
|
|
return $q;
|
|
});
|
|
}else{
|
|
if(isset($data['sort']) && $data['sort'] != 'newest'){
|
|
if($data['sort'] == 'oldest'){
|
|
$query = $query->orderBy('id');
|
|
}elseif($data['sort'] == 'smallest'){
|
|
$query = $query->orderBy('size');
|
|
}
|
|
elseif($data['sort'] == 'bigest'){
|
|
$query = $query->orderByDesc('size');
|
|
}
|
|
}
|
|
|
|
$query = $query->orderByDesc('id');
|
|
}
|
|
return $query->get();
|
|
}
|
|
|
|
public function getCreatorStudioVideos(Request $request) {
|
|
$videos = app(CommonService::class)->getCreatorStudioVideos($request);
|
|
return response()->json($videos);
|
|
}
|
|
|
|
public function getAllCategories(Request $request) {
|
|
$categories = \Modules\StudioPlus\Entities\StudioPlusCategory::query()
|
|
->orderBy('name')
|
|
->get();
|
|
|
|
return \Modules\StudioPlus\Transformers\StudioPlusCategoryResource::collection($categories);
|
|
}
|
|
}
|