Skip to content

Commit 320a6d7

Browse files
committed
wip: routes registrar controllers taken from config file
1 parent 6d2369e commit 320a6d7

File tree

7 files changed

+508
-51
lines changed

7 files changed

+508
-51
lines changed

config/config.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,19 @@
2323
'category_type' => \Javaabu\Cms\Models\CategoryType::class,
2424
],
2525

26+
'web' => [
27+
'controllers' => [
28+
'posts' => \Javaabu\Cms\Http\Controllers\PostsController::class,
29+
],
30+
],
31+
32+
'admin' => [
33+
'controllers' => [
34+
'posts' => \Javaabu\Cms\Http\Controllers\Admin\PostsController::class,
35+
'categories' => \Javaabu\Cms\Http\Controllers\Admin\CategoriesController::class,
36+
]
37+
],
38+
2639
/**
2740
* This config section defines the policies that are used in the CMS package.
2841
* Not all applications will be having the same policies, so you can define the

src/Cms.php

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
use Illuminate\Support\Facades\Route;
66
use Illuminate\Support\Str;
77
use Javaabu\Cms\Enums\PostTypeFeatures;
8-
use Javaabu\Cms\Http\Controllers\Admin\CategoriesController;
9-
use Javaabu\Cms\Http\Controllers\PostsController;
10-
use Javaabu\Cms\Http\Controllers\Admin\PostsController as AdminPostsController;
118
use Javaabu\Cms\Models\CategoryType;
129
use Javaabu\Cms\Models\Post;
1310
use Javaabu\Cms\Models\PostType;
11+
use Javaabu\Cms\Translatable\Http\Controllers\Admin\CategoriesController;
12+
use Javaabu\Cms\Translatable\Http\Controllers\Admin\PostsController as AdminPostsController;
13+
use Javaabu\Cms\Translatable\Http\Controllers\PostsController;
1414
use Javaabu\MenuBuilder\Menu\MenuItem;
1515
use Javaabu\Translatable\Facades\Languages;
1616

@@ -71,11 +71,11 @@ public function registerNormalRoutes(): void
7171
$post_types = $root_slugs['post_type'] ?? [];
7272
/** @var PostType $post_type */
7373
foreach ($post_types as $post_type) {
74-
Route::get($post_type->slug, [PostsController::class, 'index'])
74+
Route::get($post_type->slug, [config('cms.web.controllers.posts'), 'index'])
7575
->defaults('web_post_type_slug', $post_type->slug)
7676
->name('cms::posts.index.' . $post_type->slug);
7777

78-
Route::get($post_type->slug . '/{post_slug}', [PostsController::class, 'show'])
78+
Route::get($post_type->slug . '/{post_slug}', [config('cms.web.controllers.posts'), 'show'])
7979
->defaults('web_post_type_slug', $post_type)
8080
->name('cms::posts.show.' . $post_type->slug);
8181

@@ -94,18 +94,18 @@ public function registerNormalAdminRoutes(): void
9494
'prefix' => 'category-types/{category_type}',
9595
'as' => 'categories.',
9696
], function () {
97-
Route::match(['PUT', 'PATCH'], '/', [CategoriesController::class, 'bulk'])->name('bulk');
98-
Route::get('/trash', [CategoriesController::class, 'trash'])->name('trash');
99-
Route::post('/{id}/restore', [CategoriesController::class, 'restore'])->name('restore');
100-
Route::delete('/{id}/force-delete', [CategoriesController::class, 'forceDelete'])->name('force-delete');
101-
Route::get('/', [CategoriesController::class, 'index'])->name('index');
102-
Route::get('/create', [CategoriesController::class, 'create'])->name('create');
103-
Route::post('/', [CategoriesController::class, 'store'])->name('store');
104-
105-
Route::get('/{category}', [CategoriesController::class, 'show'])->name('show');
106-
Route::get('/{category}/edit', [CategoriesController::class, 'edit'])->name('edit');
107-
Route::match(['PUT', 'PATCH'], '/{category}', [CategoriesController::class, 'update'])->name('update');
108-
Route::delete('/{category}', [CategoriesController::class, 'destroy'])->name('destroy');
97+
Route::match(['PUT', 'PATCH'], '/', [config('cms.admin.controllers.categories'), 'bulk'])->name('bulk');
98+
Route::get('/trash', [config('cms.admin.controllers.categories'), 'trash'])->name('trash');
99+
Route::post('/{id}/restore', [config('cms.admin.controllers.categories'), 'restore'])->name('restore');
100+
Route::delete('/{id}/force-delete', [config('cms.admin.controllers.categories'), 'forceDelete'])->name('force-delete');
101+
Route::get('/', [config('cms.admin.controllers.categories'), 'index'])->name('index');
102+
Route::get('/create', [config('cms.admin.controllers.categories'), 'create'])->name('create');
103+
Route::post('/', [config('cms.admin.controllers.categories'), 'store'])->name('store');
104+
105+
Route::get('/{category}', [config('cms.admin.controllers.categories'), 'show'])->name('show');
106+
Route::get('/{category}/edit', [config('cms.admin.controllers.categories'), 'edit'])->name('edit');
107+
Route::match(['PUT', 'PATCH'], '/{category}', [config('cms.admin.controllers.categories'), 'update'])->name('update');
108+
Route::delete('/{category}', [config('cms.admin.controllers.categories'), 'destroy'])->name('destroy');
109109
});
110110
/**
111111
* Post Types
@@ -114,17 +114,17 @@ public function registerNormalAdminRoutes(): void
114114
'prefix' => '{post_type}',
115115
'as' => 'posts.',
116116
], function () {
117-
Route::match(['PUT', 'PATCH'], '/', [AdminPostsController::class, 'bulk'])->name('bulk');
118-
Route::get('/trash', [AdminPostsController::class, 'trash'])->name('trash');
119-
Route::post('/{id}/restore', [AdminPostsController::class, 'restore'])->name('restore');
120-
Route::delete('/{id}/force-delete', [AdminPostsController::class, 'forceDelete'])->name('force-delete');
121-
Route::get('/', [AdminPostsController::class, 'index'])->name('index');
122-
Route::get('/create', [AdminPostsController::class, 'create'])->name('create');
123-
Route::post('/', [AdminPostsController::class, 'store'])->name('store');
124-
Route::get('/{post}', [AdminPostsController::class, 'show'])->name('show');
125-
Route::get('/{post}/edit', [AdminPostsController::class, 'edit'])->name('edit');
126-
Route::match(['PUT', 'PATCH'], '/{post}', [AdminPostsController::class, 'update'])->name('update');
127-
Route::delete('/{post}', [AdminPostsController::class, 'destroy'])->name('destroy');
117+
Route::match(['PUT', 'PATCH'], '/', [config('cms.admin.controllers.posts'), 'bulk'])->name('bulk');
118+
Route::get('/trash', [config('cms.admin.controllers.posts'), 'trash'])->name('trash');
119+
Route::post('/{id}/restore', [config('cms.admin.controllers.posts'), 'restore'])->name('restore');
120+
Route::delete('/{id}/force-delete', [config('cms.admin.controllers.posts'), 'forceDelete'])->name('force-delete');
121+
Route::get('/', [config('cms.admin.controllers.posts'), 'index'])->name('index');
122+
Route::get('/create', [config('cms.admin.controllers.posts'), 'create'])->name('create');
123+
Route::post('/', [config('cms.admin.controllers.posts'), 'store'])->name('store');
124+
Route::get('/{post}', [config('cms.admin.controllers.posts'), 'show'])->name('show');
125+
Route::get('/{post}/edit', [config('cms.admin.controllers.posts'), 'edit'])->name('edit');
126+
Route::match(['PUT', 'PATCH'], '/{post}', [config('cms.admin.controllers.posts'), 'update'])->name('update');
127+
Route::delete('/{post}', [config('cms.admin.controllers.posts'), 'destroy'])->name('destroy');
128128
});
129129
}
130130

@@ -157,7 +157,7 @@ public function adminMenuItems(array $menus = [])
157157
$name = Str::title($post_type->name);
158158
$children = [
159159
MenuItem::make($name)
160-
->controller(PostsController::class)
160+
->controller(config('cms.admin.controllers.posts'))
161161
->can('view_' . $post_type->permission_slug)
162162
->active(optional(request()->route('post_type'))->slug == $post_type->slug)
163163
// ->url(config('cms.should_translate')
@@ -171,7 +171,7 @@ public function adminMenuItems(array $menus = [])
171171

172172
if ($post_type->hasFeature(PostTypeFeatures::CATEGORIES)) {
173173
$children[] = MenuItem::make(_d(':name Categories', ['name' => Str::singular($name)]))
174-
->controller(CategoriesController::class)
174+
->controller(config('cms.admin.controllers.categories'))
175175
->can('view_' . Str::singular($post_type->permission_slug) . '_categories')
176176
->active(optional(request()->route('category_type'))->slug == Str::singular($post_type->slug) . '-categories')
177177
// ->url(config('cms.should_translate')

src/Http/Controllers/Admin/PostsController.php

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ protected static function initOrderbys()
3737
/**
3838
* Display a listing of the resource.
3939
*/
40-
public function index($locale, PostType $type, Request $request, bool $trashed = false)
40+
public function index(PostType $type, Request $request, bool $trashed = false)
4141
{
4242
$this->authorize('viewAny', $type);
4343

@@ -102,7 +102,7 @@ public function index($locale, PostType $type, Request $request, bool $trashed =
102102
/**
103103
* Show the form for creating a new resource.
104104
*/
105-
public function create($locale, PostType $type, Request $request)
105+
public function create(PostType $type, Request $request)
106106
{
107107
$this->authorize('create', $type);
108108
return view('admin.posts.create', compact('type'));
@@ -111,7 +111,7 @@ public function create($locale, PostType $type, Request $request)
111111
/**
112112
* Store a newly created resource in storage.
113113
*/
114-
public function store($locale, PostType $type, PostRequest $request)
114+
public function store(PostType $type, PostRequest $request)
115115
{
116116
$this->authorize('create', $type);
117117

@@ -173,22 +173,22 @@ public function store($locale, PostType $type, PostRequest $request)
173173
}
174174
$this->flashSuccessMessage();
175175

176-
return redirect()->action([PostsController::class, 'edit'], [$locale, $type, $post]);
176+
return redirect()->action([PostsController::class, 'edit'], [$type, $post]);
177177
}
178178

179179
/**
180180
* Display the specified resource.
181181
*/
182-
public function show($locale, PostType $type, Post $post)
182+
public function show(PostType $type, Post $post)
183183
{
184184
$this->authorize('view', $post);
185-
return redirect()->action([static::class, 'edit'], [$locale, $type, $post]);
185+
return redirect()->action([static::class, 'edit'], [$type, $post]);
186186
}
187187

188188
/**
189189
* Show the form for editing the specified resource.
190190
*/
191-
public function edit($locale, PostType $type, Post $post)
191+
public function edit(PostType $type, Post $post)
192192
{
193193
$this->authorize('update', $post);
194194
$post->dontShowTranslationFallbacks();
@@ -198,7 +198,7 @@ public function edit($locale, PostType $type, Post $post)
198198
/**
199199
* Update the specified resource in storage.
200200
*/
201-
public function update($locale, PostRequest $request, PostType $type, Post $post)
201+
public function update(PostRequest $request, PostType $type, Post $post)
202202
{
203203
$this->authorize('update', $post);
204204

@@ -284,13 +284,13 @@ public function update($locale, PostRequest $request, PostType $type, Post $post
284284

285285
$this->flashSuccessMessage();
286286

287-
return redirect()->action([static::class, 'edit'], [$locale, $type, $post]);
287+
return redirect()->action([static::class, 'edit'], [$type, $post]);
288288
}
289289

290290
/**
291291
* Remove the specified resource from storage.
292292
*/
293-
public function destroy($locale, PostType $type, Post $post, Request $request)
293+
public function destroy(PostType $type, Post $post, Request $request)
294294
{
295295
$this->authorize('delete', $post);
296296

@@ -306,23 +306,23 @@ public function destroy($locale, PostType $type, Post $post, Request $request)
306306
return response()->json(true);
307307
}
308308

309-
return redirect()->action([static::class, 'index'], [$locale, $type]);
309+
return redirect()->action([static::class, 'index'], [$type]);
310310
}
311311

312312
/**
313313
* Display a listing of the deleted resources.
314314
*/
315-
public function trash($locale, PostType $type, Request $request)
315+
public function trash(PostType $type, Request $request)
316316
{
317317
$this->authorize('viewTrash', $type);
318318

319-
return $this->index($locale, $type, $request, true);
319+
return $this->index($type, $request, true);
320320
}
321321

322322
/**
323323
* Force delete the resource
324324
*/
325-
public function forceDelete($locale, PostType $postType, $id, Request $request)
325+
public function forceDelete(PostType $postType, $id, Request $request)
326326
{
327327
//find the model
328328
$post = $postType->posts()
@@ -345,13 +345,13 @@ public function forceDelete($locale, PostType $postType, $id, Request $request)
345345
return response()->json(true);
346346
}
347347

348-
return redirect()->action([static::class, 'trash'], [$locale, $postType]);
348+
return redirect()->action([static::class, 'trash'], [$postType]);
349349
}
350350

351351
/**
352352
* Restore deleted resource
353353
*/
354-
public function restore($locale, PostType $postType, $id, Request $request)
354+
public function restore(PostType $postType, $id, Request $request)
355355
{
356356
//find the model
357357
$post = $postType->posts()
@@ -374,13 +374,13 @@ public function restore($locale, PostType $postType, $id, Request $request)
374374
return response()->json(true);
375375
}
376376

377-
return redirect()->action([static::class, [$locale, $postType]]);
377+
return redirect()->action([static::class, [$postType]]);
378378
}
379379

380380
/**
381381
* Perform bulk action on the resource
382382
*/
383-
public function bulk($locale, PostType $type, Request $request)
383+
public function bulk(PostType $type, Request $request)
384384
{
385385
$this->authorize('viewAny', $type);
386386

@@ -433,6 +433,6 @@ public function bulk($locale, PostType $type, Request $request)
433433

434434
$this->flashSuccessMessage("{$ids_count} Posts updated!");
435435

436-
return $this->redirect($request, action([static::class, 'index'], [$locale, $type]));
436+
return $this->redirect($request, action([static::class, 'index'], [$type]));
437437
}
438438
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?php
2+
3+
trait AdminPostsController {
4+
5+
}

src/Http/Controllers/Admin/CategoriesController.php renamed to src/Translatable/Http/Controllers/Admin/CategoriesController.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
<?php
22

3-
namespace Javaabu\Cms\Http\Controllers\Admin;
3+
namespace Javaabu\Cms\Translatable\Http\Controllers\Admin;
44

55
use Illuminate\Http\Request;
66
use Javaabu\Cms\Http\Requests\CategoriesRequest;
77
use Javaabu\Cms\Models\Category;
88
use Javaabu\Cms\Models\CategoryType;
99
use Javaabu\Helpers\Http\Controllers\Controller;
1010
use Javaabu\Helpers\Traits\HasOrderbys;
11+
1112
class CategoriesController extends Controller
1213
{
1314
use HasOrderbys;

0 commit comments

Comments
 (0)