From e480a7c62535fa96fefe94ff56568b68d2e41856 Mon Sep 17 00:00:00 2001 From: prashant-webkul Date: Thu, 9 Aug 2018 17:30:26 +0530 Subject: [PATCH] Slider on store front implemented with html content, css and transition animations left --- packages/Webkul/Channel/src/Channel.php | 6 ++ .../Webkul/Core/src/Eloquent/Repository.php | 6 +- .../src/Repositories/SliderRepository.php | 6 +- .../src/Http/Controllers/HomeController.php | 18 ++++- .../src/Http/Controllers/SliderController.php | 4 +- .../assets/js/components/imageSlider.vue | 75 ++++++++++++++++--- .../Shop/src/Resources/assets/sass/app.scss | 1 + .../views/store/slider/slider.blade.php | 2 +- 8 files changed, 95 insertions(+), 23 deletions(-) diff --git a/packages/Webkul/Channel/src/Channel.php b/packages/Webkul/Channel/src/Channel.php index 67dd6afb6..7fde69918 100644 --- a/packages/Webkul/Channel/src/Channel.php +++ b/packages/Webkul/Channel/src/Channel.php @@ -18,4 +18,10 @@ class Channel return $channel->code; } + + public function getCurrentChannel() { + //just retrieve only three columns id, name and code + $current_channel = collect(ChannelModel::select('id','name','code')->first()); + return $current_channel; + } } \ No newline at end of file diff --git a/packages/Webkul/Core/src/Eloquent/Repository.php b/packages/Webkul/Core/src/Eloquent/Repository.php index b552c762d..080147f0c 100644 --- a/packages/Webkul/Core/src/Eloquent/Repository.php +++ b/packages/Webkul/Core/src/Eloquent/Repository.php @@ -1,4 +1,4 @@ -resetScope()->model->with($with)->get($columns); } - + /** * @param int $perPage * @param array $columns @@ -158,7 +158,7 @@ abstract class Repository implements RepositoryInterface { return $this->model = $model->newQuery(); } - + /** * @return $this */ diff --git a/packages/Webkul/Core/src/Repositories/SliderRepository.php b/packages/Webkul/Core/src/Repositories/SliderRepository.php index 65569d770..6c6bff0c0 100644 --- a/packages/Webkul/Core/src/Repositories/SliderRepository.php +++ b/packages/Webkul/Core/src/Repositories/SliderRepository.php @@ -28,13 +28,13 @@ class SliderRepository extends Repository */ public function create(array $data) { - $image = request()->file('image'); + $image = request()->hasFile('image'); - $image_name = trim($data['title']).'.'.$image->getClientOriginalExtension(); + $image_name = uniqid(20).'.'.$image->getClientOriginalExtension(); $destinationPath = public_path('/vendor/webkul/shop/assets/images/slider'); $path = $image->move($destinationPath, $image_name); - $path= $path->getrealPath(); + $path= 'vendor/webkul/shop/assets/images/slider/'.$image_name; $data['path'] = $path; $this->model->create($data); } diff --git a/packages/Webkul/Shop/src/Http/Controllers/HomeController.php b/packages/Webkul/Shop/src/Http/Controllers/HomeController.php index 69aa477fe..8fcf85e12 100644 --- a/packages/Webkul/Shop/src/Http/Controllers/HomeController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/HomeController.php @@ -5,7 +5,8 @@ namespace Webkul\Shop\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; use Illuminate\Routing\Controller; - +use Webkul\Core\Repositories\SliderRepository as Sliders; +use Webkul\Channel\Channel as Channel; /** * Admin user session controller * @@ -15,13 +16,22 @@ use Illuminate\Routing\Controller; class HomeController extends controller { protected $_config; + protected $sliders; + protected $current_channel; - public function __construct() + public function __construct(Sliders $s,Channel $c) { $this->_config = request('_config'); + $this->sliders = $s; + $this->current_channel = $c; } - public function index(){ - return view($this->_config['view']); + public function index() { + + $current_channel = $this->current_channel->getCurrentChannel(); + + $all_sliders = $this->sliders->findWhere(['channel_id'=>$current_channel['id']]); + + return view($this->_config['view'])->with('data',$all_sliders); } } diff --git a/packages/Webkul/Shop/src/Http/Controllers/SliderController.php b/packages/Webkul/Shop/src/Http/Controllers/SliderController.php index 4b8711fbf..22427acac 100644 --- a/packages/Webkul/Shop/src/Http/Controllers/SliderController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/SliderController.php @@ -45,7 +45,7 @@ class SliderController extends controller public function create() { $call = new Channel(); - $channels = $call->getChannelWithLocales(); + $channels = $call->getAllChannels(); return view($this->_config['view'])->with('channels',[$channels]); } @@ -54,8 +54,8 @@ class SliderController extends controller * sider item */ public function store() { - // dd($request->title,$full_path->getrealPath(),$request->content,$request->channel); $this->slider->create(request()->all()); + session()->flash('success', 'Slider created successfully.'); return redirect()->back(); } } \ No newline at end of file diff --git a/packages/Webkul/Shop/src/Resources/assets/js/components/imageSlider.vue b/packages/Webkul/Shop/src/Resources/assets/js/components/imageSlider.vue index 1c7f4ede1..50ba3ef47 100644 --- a/packages/Webkul/Shop/src/Resources/assets/js/components/imageSlider.vue +++ b/packages/Webkul/Shop/src/Resources/assets/js/components/imageSlider.vue @@ -2,7 +2,8 @@