diff --git a/app/Http/Controllers/Shop/Admin/ArticleCategoryController.php b/app/Http/Controllers/Shop/Admin/ArticleCategoryController.php deleted file mode 100644 index 89bbb438..00000000 --- a/app/Http/Controllers/Shop/Admin/ArticleCategoryController.php +++ /dev/null @@ -1,87 +0,0 @@ -input('id'); + $data['images'] = Categories::getImages($id); + return view('components.uploader.mini-gallery-items', $data); + } + + public function deleteImage(Request $request) + { + $id = $request->input('id'); + $index = $request->input('index'); + return Categories::deleteImage($id, $index); + } + } diff --git a/app/Models/Shop/Category.php b/app/Models/Shop/Category.php index 9250159f..72c575c9 100644 --- a/app/Models/Shop/Category.php +++ b/app/Models/Shop/Category.php @@ -3,12 +3,18 @@ namespace App\Models\Shop; use Illuminate\Database\Eloquent\Model; - +use Spatie\MediaLibrary\HasMedia\HasMedia; +use Spatie\MediaLibrary\HasMedia\HasMediaTrait; use Rinvex\Categories\Traits\Categorizable; +use Rinvex\Tags\Traits\Taggable; // use Conner\Tagging\Taggable; +use Fico7489\Laravel\EloquentJoin\Traits\EloquentJoin; class Category extends Model { + use Taggable; + use HasMediaTrait; + protected $guarded = ['id']; protected $table = 'shop_categories'; diff --git a/app/Repositories/Shop/Categories.php b/app/Repositories/Shop/Categories.php index 30bede9b..90333749 100644 --- a/app/Repositories/Shop/Categories.php +++ b/app/Repositories/Shop/Categories.php @@ -35,12 +35,70 @@ class Categories return Category::get()->pluck('name','category_id')->toArray(); } + 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']); + $category = self::store($data); + self::storeImages($category, $images); + // self::storeTags($category, $tags); + return $category; + } + public static function store($data) { $id = isset($data['id']) ? $data['id'] : false; return $id ? self::update($data, $id) : self::create($data); } + public static function storeTags($category, $tags) + { + if ($tags) { + $tags = collect($tags)->transform(function ($item, $key) { + return (int) $item; + })->toArray(); + return $category->syncTags($tags, true); + } else return false; + } + + public static function storeImages($category, $files) + { + if ($files) { + foreach ($files as $file) { + self::storeImage($category, $file); + } + } + } + + public static function storeImage($category, $file) + { + return $article->addMedia($file)->withResponsiveImages()->toMediaCollection('images'); + } + + public static function getImages($id) + { + $category = self::get($id); + if ($category) { + $category->getMedia(); + foreach ($category->media as $key => $media) { + $category->media[$key]['url'] = $media->getUrl(); + } + return $category->media; + } else { + return false; + } + } + + public static function deleteImage($id, $index) + { + $category = self::get($id); + $category->getMedia(); + $ret = $category->media[$index]->delete(); + return "1"; + } + public static function create($data) { $node = CategoryTrees::create($data); @@ -52,7 +110,8 @@ class Categories public static function update($data, $id = false) { $id = $id ? $id : $data['id']; - $category = Category::find($id)->update($data); + $category = Category::find($id); + $ret = $category->update($data); CategoryTrees::update($data, $category->category_id); return $category; } @@ -66,7 +125,7 @@ class Categories public static function getRoot() { - return app('rinvex.categorys.category')->find(1); + return app('rinvex.categories.category')->find(1); } } diff --git a/resources/views/Shop/Admin/Categories/form.blade.php b/resources/views/Shop/Admin/Categories/form.blade.php index 9acce629..d5274c0f 100644 --- a/resources/views/Shop/Admin/Categories/form.blade.php +++ b/resources/views/Shop/Admin/Categories/form.blade.php @@ -31,7 +31,7 @@