Commit afa63fb5 authored by Viral Solani's avatar Viral Solani

Refactor Blog Module

parent eb880c0d
...@@ -16,6 +16,16 @@ use App\Repositories\Backend\Blogs\BlogsRepository; ...@@ -16,6 +16,16 @@ use App\Repositories\Backend\Blogs\BlogsRepository;
*/ */
class BlogsController extends Controller class BlogsController extends Controller
{ {
/**
* Blog Status
*/
protected $status = [
'Published' => 'Published',
'Draft' => 'Draft',
'Inactive' => 'Inactive',
'Scheduled' => 'Scheduled',
];
/** /**
* @var BlogsRepository * @var BlogsRepository
*/ */
...@@ -36,14 +46,9 @@ class BlogsController extends Controller ...@@ -36,14 +46,9 @@ class BlogsController extends Controller
*/ */
public function index(ManageBlogsRequest $request) public function index(ManageBlogsRequest $request)
{ {
$status = [ return view('backend.blogs.index')->with([
'Published' => 'Published', 'status'=> $this->status
'Draft' => 'Draft', ]);
'Inactive' => 'Inactive',
'Scheduled' => 'Scheduled',
];
return view('backend.blogs.index', compact('status'));
} }
/** /**
...@@ -53,16 +58,14 @@ class BlogsController extends Controller ...@@ -53,16 +58,14 @@ class BlogsController extends Controller
*/ */
public function create(ManageBlogsRequest $request) public function create(ManageBlogsRequest $request)
{ {
$blogCategories = BlogCategory::where('status', 1)->pluck('name', 'id'); $blogCategories = BlogCategory::getSelectData();
$blogTags = BlogTag::where('status', 1)->pluck('name', 'id'); $blogTags = BlogTag::getSelectData();
$status = [
'Published' => 'Published', return view('backend.blogs.create')->with([
'Draft' => 'Draft', 'blogCategories' => $blogCategories,
'Inactive' => 'Inactive', 'blogTags' => $blogTags,
'Scheduled' => 'Scheduled', 'status'=> $this->status
]; ]);
return view('backend.blogs.create', compact('blogCategories', 'blogTags', 'status'));
} }
/** /**
...@@ -73,8 +76,7 @@ class BlogsController extends Controller ...@@ -73,8 +76,7 @@ class BlogsController extends Controller
public function store(StoreBlogsRequest $request) public function store(StoreBlogsRequest $request)
{ {
$input = $request->all(); $input = $request->all();
$tagsArray = $this->createTagsArray($input['tags']);
$categoriesArray = $this->createCategoriesArray($input['categories']);
$this->blogs->create($input, $tagsArray, $categoriesArray); $this->blogs->create($input, $tagsArray, $categoriesArray);
return redirect()->route('admin.blogs.index')->withFlashSuccess(trans('alerts.backend.blogs.created')); return redirect()->route('admin.blogs.index')->withFlashSuccess(trans('alerts.backend.blogs.created'));
...@@ -88,25 +90,20 @@ class BlogsController extends Controller ...@@ -88,25 +90,20 @@ class BlogsController extends Controller
*/ */
public function edit(Blog $blog, ManageBlogsRequest $request) public function edit(Blog $blog, ManageBlogsRequest $request)
{ {
$blogCategories = BlogCategory::where('status', 1)->pluck('name', 'id'); $blogCategories = BlogCategory::getSelectData();
$blogTags = BlogTag::where('status', 1)->pluck('name', 'id'); $blogTags = BlogTag::getSelectData();
$status = [
'Published' => 'Published',
'Draft' => 'Draft',
'InActive' => 'InActive',
'Scheduled' => 'Scheduled',
];
$selectedCategories = $blog->categories->pluck('id')->toArray(); $selectedCategories = $blog->categories->pluck('id')->toArray();
$selectedtags = $blog->tags->pluck('id')->toArray(); $selectedtags = $blog->tags->pluck('id')->toArray();
return view('backend.blogs.edit', compact( return view('backend.blogs.edit')->with([
'blogCategories', 'blog' => $blog,
'blogTags', 'blogCategories' => $blogCategories,
'status', 'blogTags' => $blogTags,
'selectedCategories', 'selectedCategories' => $selectedCategories,
'selectedtags') 'selectedtags' => $selectedtags,
) 'status'=> $this->status
->withBlog($blog); ]);
} }
/** /**
...@@ -118,10 +115,8 @@ class BlogsController extends Controller ...@@ -118,10 +115,8 @@ class BlogsController extends Controller
public function update(Blog $blog, UpdateBlogsRequest $request) public function update(Blog $blog, UpdateBlogsRequest $request)
{ {
$input = $request->all(); $input = $request->all();
$tagsArray = $this->createTagsArray($input['tags']);
$categoriesArray = $this->createCategoriesArray($input['categories']);
$this->blogs->update($blog, $input, $tagsArray, $categoriesArray); $this->blogs->update($blog, $input);
return redirect()->route('admin.blogs.index')->withFlashSuccess(trans('alerts.backend.blogs.updated')); return redirect()->route('admin.blogs.index')->withFlashSuccess(trans('alerts.backend.blogs.updated'));
} }
...@@ -138,53 +133,4 @@ class BlogsController extends Controller ...@@ -138,53 +133,4 @@ class BlogsController extends Controller
return redirect()->route('admin.blogs.index')->withFlashSuccess(trans('alerts.backend.blogs.deleted')); return redirect()->route('admin.blogs.index')->withFlashSuccess(trans('alerts.backend.blogs.deleted'));
} }
/**
* Creating Tags Array.
*
* @param Array($tags)
*
* @return array
*/
public function createTagsArray($tags)
{
//Creating a new array for tags (newly created)
$tags_array = [];
foreach ($tags as $tag) {
if (is_numeric($tag)) {
$tags_array[] = $tag;
} else {
$newTag = BlogTag::create(['name' => $tag, 'status' => 1, 'created_by' => 1]);
$tags_array[] = $newTag->id;
}
}
return $tags_array;
}
/**
* Creating Tags Array.
*
* @param Array($tags)
*
* @return array
*/
public function createCategoriesArray($categories)
{
//Creating a new array for categories (newly created)
$categories_array = [];
foreach ($categories as $category) {
if (is_numeric($category)) {
$categories_array[] = $category;
} else {
$newCategory = BlogCategory::create(['name' => $category, 'status' => 1, 'created_by' => 1]);
$categories_array[] = $newCategory->id;
}
}
return $categories_array;
}
} }
...@@ -44,16 +44,16 @@ class BlogsRepository extends BaseRepository ...@@ -44,16 +44,16 @@ class BlogsRepository extends BaseRepository
/** /**
* @param array $input * @param array $input
* @param array $tagsArray
* @param array $categoriesArray
* *
* @throws GeneralException * @throws GeneralException
* *
* @return bool * @return bool
*/ */
public function create(array $input, array $tagsArray, array $categoriesArray) public function create(array $input)
{ {
// dd(Carbon::createFromFormat('d/m/Y h:i a',$input['publish_datetime'])); $tagsArray = $this->createTagsArray($input['tags']);
$categoriesArray = $this->createCategoriesArray($input['categories']);
DB::transaction(function () use ($input, $tagsArray, $categoriesArray) { DB::transaction(function () use ($input, $tagsArray, $categoriesArray) {
$blogs = self::MODEL; $blogs = self::MODEL;
$blogs = new $blogs(); $blogs = new $blogs();
...@@ -94,15 +94,16 @@ class BlogsRepository extends BaseRepository ...@@ -94,15 +94,16 @@ class BlogsRepository extends BaseRepository
} }
/** /**
* Update Blog
*
* @param $blogs * @param $blogs
* @param array $input * @param array $input
* @param array $tagsArray
* @param array $categoriesArray
*/ */
public function update($blogs, array $input, array $tagsArray, array $categoriesArray) public function update($blogs, array $input)
{ {
// dd( Carbon::parse($input['publish_datetime'])); $tagsArray = $this->createTagsArray($input['tags']);
// dd($input['publish_datetime']); $categoriesArray = $this->createCategoriesArray($input['categories']);
$blogs->name = $input['name']; $blogs->name = $input['name'];
$blogs->slug = str_slug($input['name']); $blogs->slug = str_slug($input['name']);
$blogs->content = $input['content']; $blogs->content = $input['content'];
...@@ -145,6 +146,55 @@ class BlogsRepository extends BaseRepository ...@@ -145,6 +146,55 @@ class BlogsRepository extends BaseRepository
}); });
} }
/**
* Creating Tags Array.
*
* @param Array($tags)
*
* @return array
*/
public function createTagsArray($tags)
{
//Creating a new array for tags (newly created)
$tags_array = [];
foreach ($tags as $tag) {
if (is_numeric($tag)) {
$tags_array[] = $tag;
} else {
$newTag = BlogTag::create(['name' => $tag, 'status' => 1, 'created_by' => 1]);
$tags_array[] = $newTag->id;
}
}
return $tags_array;
}
/**
* Creating Tags Array.
*
* @param Array($tags)
*
* @return array
*/
public function createCategoriesArray($categories)
{
//Creating a new array for categories (newly created)
$categories_array = [];
foreach ($categories as $category) {
if (is_numeric($category)) {
$categories_array[] = $category;
} else {
$newCategory = BlogCategory::create(['name' => $category, 'status' => 1, 'created_by' => 1]);
$categories_array[] = $newCategory->id;
}
}
return $categories_array;
}
/** /**
* @param Model $blog * @param Model $blog
* *
......
{ {
"/js/frontend.js": "/js/frontend.f5faf334d6b2231b48c8.js", "/js/frontend.js": "/js/frontend.945469bbbc12df3ad9e1.js",
"/js/backend.js": "/js/backend.d106d5f7e2110ee3cea7.js", "/js/backend.js": "/js/backend.79d9e4698dadbc0d93c7.js",
"/mix.js": "/mix.247ab120fe7680658924.js", "/mix.js": "/mix.247ab120fe7680658924.js",
"/css/frontend.css": "/css/frontend.90a13bfbf8d4ea6a30a8eb218e8d48b3.css", "/css/frontend.css": "/css/frontend.3af0a6cbd7d1d8d042f2a37e97008b7c.css",
"/css/backend.css": "/css/backend.7b6d826816293ff35f4185341567f559.css", "/css/backend.css": "/css/backend.f8550f50504e5b8ef6055285205f223a.css",
"/css/backend-custom.css": "/css/backend-custom.187b92dacd8c501e4a19407d700d279b.css", "/css/backend-custom.css": "/css/backend-custom.50f14193ab908e3cf471dea6cb6616ae.css",
"/js/backend-custom.js": "/js/backend-custom.3ee9346acb0cd5e1f3edf70e9117e1f4.js", "/js/backend-custom.js": "/js/backend-custom.e6ea05e1824d0dd8e7c62027c135b7f2.js",
"/js/dataTable.js": "/js/dataTable.0db0f52a09a62d485aa1229ed981b1cf.js" "/js/dataTable.js": "/js/dataTable.f968d300a6a0b871f138f114361259c8.js"
} }
\ No newline at end of file
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
@endsection @endsection
@section('content') @section('content')
{{ Form::model($blog, ['route' => ['admin.blogs.update', $blog], 'class' => 'form-horizontal', 'role' => 'form', 'method' => 'PATCH', 'id' => 'edit-role', 'files' => true]) }} {{ Form::model($blog, ['route' => ['admin.blogs.update', $blog], 'class' => 'form-horizontal', 'role' => 'form', 'method' => 'PATCH', 'id' => 'edit-role', 'files' => true]) }}
<div class="box box-success"> <div class="box box-success">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment