Fixes on categories

This commit is contained in:
Ludovic CANDELLIER
2020-06-28 23:37:45 +02:00
parent 1830ea45cf
commit 3386f6ee1a
6 changed files with 87 additions and 91 deletions

View File

@@ -1,87 +0,0 @@
<?php
namespace App\Http\Controllers\Shop\Admin;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Repositories\Shop\CategoryProducts;
class CategoryProductController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param \App\CategoryProduct $categoryProduct
* @return \Illuminate\Http\Response
*/
public function show(CategoryProduct $categoryProduct)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\CategoryProduct $categoryProduct
* @return \Illuminate\Http\Response
*/
public function edit(CategoryProduct $categoryProduct)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\CategoryProduct $categoryProduct
* @return \Illuminate\Http\Response
*/
public function update(Request $request, CategoryProduct $categoryProduct)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\CategoryProduct $categoryProduct
* @return \Illuminate\Http\Response
*/
public function destroy(CategoryProduct $categoryProduct)
{
//
}
}

View File

@@ -57,4 +57,19 @@ class CategoryController extends Controller
{
return Categories::destroy($id);
}
public function getImages(Request $request, $id = false)
{
$id = $id ? $id : $request->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);
}
}

View File

@@ -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';

View File

@@ -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);
}
}

View File

@@ -31,7 +31,7 @@
</div>
<div class="col-md-4">
{{ Form::label('photo', 'Photos') }}
@include('components.file', ['name' => 'photo', 'value' => isset($photo) ? $photo : null, 'required' => true])
@include('components.uploader.widget', ['load_url' => route('Shop.Admin.Categories.getImages', ['id' => (isset($id)) ? $id : false]), 'delete_url' => route('Shop.Admin.Categories.deleteImage') ])
</div>
</div>

View File

@@ -8,5 +8,8 @@ Route::prefix('Categories')->name('Categories.')->group(function () {
Route::post('store', 'CategoryController@store')->name('store');
Route::get('edit/{id}', 'CategoryController@edit')->name('edit');
Route::any('getImages/{id?}', 'CategoryController@getImages')->name('getImages');
Route::post('deleteImage', 'CategoryController@deleteImage')->name('deleteImage');
});