diff --git a/app/Http/Controllers/Admin/Menu/PostCreateMenuItemController.php b/app/Http/Controllers/Admin/Menu/PostCreateMenuItemController.php index c653514..86c54a2 100644 --- a/app/Http/Controllers/Admin/Menu/PostCreateMenuItemController.php +++ b/app/Http/Controllers/Admin/Menu/PostCreateMenuItemController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers\Admin\Menu; +use App\Http\Controllers\Admin\PostController; use Illuminate\Http\Request; class PostCreateMenuItemController extends BaseMenuItemController @@ -10,12 +11,6 @@ class PostCreateMenuItemController extends BaseMenuItemController public function handle(Request $request) { - $languages = app('SiteState')->languageTranslations; - return view('admin.menu.posts.edit', [ - 'adminRouteNamePrefix' => config('admin.route_name_prefix'), - 'languages' => $languages, - 'post' => null, - 'resource' => $this->postType - ]); + return app(PostController::class)->create($request, $this->postType); } } diff --git a/app/Http/Controllers/Admin/Menu/PostListMenuItemController.php b/app/Http/Controllers/Admin/Menu/PostListMenuItemController.php index e31a924..0888686 100644 --- a/app/Http/Controllers/Admin/Menu/PostListMenuItemController.php +++ b/app/Http/Controllers/Admin/Menu/PostListMenuItemController.php @@ -2,7 +2,7 @@ namespace App\Http\Controllers\Admin\Menu; -use App\Repositories\PostRepository; +use App\Http\Controllers\Admin\PostController; use Illuminate\Http\Request; class PostListMenuItemController extends BaseMenuItemController @@ -13,14 +13,6 @@ class PostListMenuItemController extends BaseMenuItemController public function handle(Request $request) { - $postTypes = config('postTypes.' . $this->postType); - $postRepo = new PostRepository($postTypes['model']); - $posts = $postRepo->getPostsPager(); - return view('admin.menu.posts.list', [ - 'adminRouteNamePrefix' => config('admin.route_name_prefix'), - 'resource' => $this->postType, - 'pageHeader' => $this->pageHeader, - 'posts' => $posts - ]); + return app(PostController::class)->index($request, $this->postType, $this->pageHeader); } } diff --git a/app/Http/Controllers/Admin/PostController.php b/app/Http/Controllers/Admin/PostController.php index 8d3d180..fefbc62 100644 --- a/app/Http/Controllers/Admin/PostController.php +++ b/app/Http/Controllers/Admin/PostController.php @@ -2,7 +2,9 @@ namespace App\Http\Controllers\Admin; +use App\Repositories\PostRepository; use App\Traits\ModelAttributeTranslationsUpdattable; +use App\Traits\PostTypeGettable; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use Auth; @@ -11,19 +13,19 @@ class PostController extends Controller { use ModelAttributeTranslationsUpdattable; - private function getModelClass($resource) - { - return config('postTypes.' . $resource)['model']; - } + use PostTypeGettable; - private function getResource(Request $request) + public function index(Request $request, $postType, $pageHeader) { - return explode('.', str_replace(config('admin.route_name_prefix'), '', $request->route()->getName()))[0]; - } - - public function index(Request $request) - { - + $postTypes = config('postTypes.' . $postType); + $postRepo = new PostRepository($postTypes['model']); + $posts = $postRepo->getPostsPager(); + return view('admin.menu.posts.list', [ + 'adminRouteNamePrefix' => config('admin.route_name_prefix'), + 'resource' => $postType, + 'pageHeader' => $pageHeader, + 'posts' => $posts + ]); } public function edit(Request $request, $postId) @@ -40,9 +42,15 @@ class PostController extends Controller ]); } - public function create(Request $request) + public function create(Request $request, $postType) { - + $languages = app('SiteState')->languageTranslations; + return view('admin.menu.posts.edit', [ + 'adminRouteNamePrefix' => config('admin.route_name_prefix'), + 'languages' => $languages, + 'post' => null, + 'resource' => $postType + ]); } public function store(Request $request) diff --git a/app/Http/Controllers/PostController.php b/app/Http/Controllers/PostController.php new file mode 100644 index 0000000..3e88c83 --- /dev/null +++ b/app/Http/Controllers/PostController.php @@ -0,0 +1,32 @@ +getResource($request); + $modelClass = $this->getModelClass($resource); + $repo = new PostRepository($modelClass); + $posts = $repo->getPostsPager(); + return view('post.index', [ + 'posts' => $posts, + 'resource' => $resource + ]); + } + + public function show(Request $request, $postId) + { + $resource = $this->getResource($request); + $modelClass = $this->getModelClass($resource); + $post = $modelClass::find($postId); + return view('post.single', ['post' => $post]); + } +} diff --git a/app/Traits/PostTypeGettable.php b/app/Traits/PostTypeGettable.php new file mode 100644 index 0000000..5fc1886 --- /dev/null +++ b/app/Traits/PostTypeGettable.php @@ -0,0 +1,18 @@ +route()->getName()))[0]; + } +} diff --git a/resources/sass/app.scss b/resources/sass/app.scss index 0db3d2f..3454cca 100644 --- a/resources/sass/app.scss +++ b/resources/sass/app.scss @@ -8,3 +8,7 @@ @import '~bootstrap/scss/bootstrap'; @import "app-common"; + +.post-feature-image { + max-width: 100%; +} diff --git a/resources/views/post/index.blade.php b/resources/views/post/index.blade.php new file mode 100644 index 0000000..42ccf27 --- /dev/null +++ b/resources/views/post/index.blade.php @@ -0,0 +1,27 @@ +@extends('layouts.app') + +@section('content-body') +