Enhance categories, add tags, parent

This commit is contained in:
Ludovic CANDELLIER
2021-08-26 17:45:37 +02:00
parent e407934e2a
commit 8d3ccbf148
9 changed files with 60 additions and 44 deletions

View File

@@ -5,6 +5,7 @@ namespace App\Http\Controllers\Admin\Shop;
use Illuminate\Http\Request;
use App\Repositories\Shop\Categories;
use App\Repositories\Shop\TagGroups;
use App\Datatables\Shop\CategoriesDataTable;
class CategoryController extends Controller
@@ -24,6 +25,7 @@ class CategoryController extends Controller
$data = [];
$data['category_id'] = 0;
$data['categories'] = Categories::getOptions();
$data['tags_list'] = TagGroups::getTreeTags();
return view('Admin.Shop.Categories.create', $data);
}
@@ -41,8 +43,9 @@ class CategoryController extends Controller
public function edit($id)
{
$data = Categories::get($id)->toArray();
$data['category'] = Categories::get($id)->toArray();
$data['categories'] = Categories::getOptions();
$data['tags_list'] = TagGroups::getTreeTags();
return view('Admin.Shop.Categories.edit', $data);
}

View File

@@ -24,4 +24,15 @@ class Category extends Model
{
return $this->morphedByMany('App\Models\Shop\Article', 'categorizable');
}
public function Shelves()
{
return $this->morphedByMany('App\Models\Shop\Category', 'categorizable');
}
public function CategoryTree()
{
return $this->belongsTo(app('rinvex.categories.category'),'category_id');
}
}

View File

@@ -130,13 +130,17 @@ class Articles
public static function storeFull($data)
{
$images = isset($data['images']) ? $data['images'] : false;
$categories = isset($data['categories']) ? $data['categories'] : false;
$tags = isset($data['tags']) ? $data['tags'] : false;
$prices = isset($data['prices']) ? $data['prices'] : false;
unset($data['images']);
$categories = isset($data['categories']) ? $data['categories'] : false;
unset($data['categories']);
$tags = isset($data['tags']) ? $data['tags'] : false;
unset($data['tags']);
$prices = isset($data['prices']) ? $data['prices'] : false;
unset($data['prices']);
$article = self::store($data);
self::storeImages($article, $images);
self::storeCategories($article, $categories);

View File

@@ -2,18 +2,10 @@
namespace App\Repositories\Shop;
use Yajra\DataTables\DataTables;
use App\Models\Shop\Category;
class Categories
{
public static function getDatatable()
{
$model = Category::orderBy('name');
return Datatables::of($model)->make(true);
}
public static function getAll()
{
return Category::orderBy('name', 'asc')->get();
@@ -21,7 +13,7 @@ class Categories
public static function get($id)
{
return Category::find($id);
return Category::with('CategoryTree')->find($id);
}
public static function getTree()
@@ -37,12 +29,14 @@ class Categories
public static function storeFull($data)
{
$images = isset($data['images']) ? $data['images'] : false;
// $tags = isset($data['tags']) ? $data['tags'] : false;
unset($data['images']);
// unset($data['tags']);
$tags = isset($data['tags']) ? $data['tags'] : false;
unset($data['tags']);
$category = self::store($data);
self::storeImages($category, $images);
// self::storeTags($category, $tags);
self::storeTags($category, $tags);
return $category;
}
@@ -126,8 +120,8 @@ class Categories
public static function destroy($id)
{
// $category = self::get($id);
// self::deleteNode($category->category_id);
$category = self::get($id);
self::deleteNode($category->category_id);
return Category::destroy($id);
}

View File

@@ -2,8 +2,6 @@
namespace App\Repositories\Shop;
use App\Models\Shop\Category;
class CategoryTrees
{
public static function getTree()
@@ -50,7 +48,7 @@ class CategoryTrees
public static function create($data)
{
$parent = (isset($data['category_id']) && $data['category_id']) ? self::getNode($data['category_id']) : self::getRoot();
$parent = (isset($data['parent_id']) && $data['parent_id']) ? self::getNode($data['parent_id']) : self::getRoot();
$category = app('rinvex.categories.category')->create(['name' => $data['name']]);
$category->appendToNode($parent)->save();
return $category;