From 09aa34b36a252ff1358fd7c9f7373bfb6af900ac Mon Sep 17 00:00:00 2001 From: rahul shukla Date: Tue, 9 Apr 2019 14:05:57 +0530 Subject: [PATCH 1/3] issue #749 fixed again & reduce query --- .../Http/Controllers/AddressController.php | 32 +++++++++---------- .../src/Http/Controllers/OrderController.php | 31 +++++++++--------- .../src/Http/Controllers/ReviewController.php | 18 +++++------ packages/Webkul/Shop/src/Http/routes.php | 6 ++-- 4 files changed, 43 insertions(+), 44 deletions(-) rename packages/Webkul/{Customer => Shop}/src/Http/Controllers/OrderController.php (74%) mode change 100755 => 100644 diff --git a/packages/Webkul/Customer/src/Http/Controllers/AddressController.php b/packages/Webkul/Customer/src/Http/Controllers/AddressController.php index dd828aec9..aaddd4160 100755 --- a/packages/Webkul/Customer/src/Http/Controllers/AddressController.php +++ b/packages/Webkul/Customer/src/Http/Controllers/AddressController.php @@ -107,15 +107,15 @@ class AddressController extends Controller */ public function edit($id) { - $addresses = $this->customer->addresses; + $address = $this->address->findOneWhere([ + 'id' => $id, + 'customer_id' => auth()->guard('customer')->user()->id + ]); - foreach ($addresses as $address) { - if ($id == $address->id) { - return view($this->_config['view'], compact('address')); - } - } + if (! $address) + abort(404); - return redirect()->route('customer.address.index'); + return view($this->_config['view'], compact('address')); } /** @@ -142,7 +142,7 @@ class AddressController extends Controller $addresses = $this->customer->addresses; foreach($addresses as $address) { - if($id == $address->id) { + if ($id == $address->id) { session()->flash('success', trans('shop::app.customer.account.address.edit.success')); $this->address->update($data, $id); @@ -185,17 +185,17 @@ class AddressController extends Controller */ public function destroy($id) { - $addresses = $this->customer->addresses; + $address = $this->address->findOneWhere([ + 'id' => $id, + 'customer_id' => auth()->guard('customer')->user()->id + ]); - foreach($addresses as $address) { - if($id == $address->id) { - $this->address->delete($id); + if (! $address) + abort(404); - session()->flash('success', trans('shop::app.customer.account.address.delete.success')); + $this->address->delete($id); - return redirect()->route('customer.address.index'); - } - } + session()->flash('success', trans('shop::app.customer.account.address.delete.success')); return redirect()->route('customer.address.index'); } diff --git a/packages/Webkul/Customer/src/Http/Controllers/OrderController.php b/packages/Webkul/Shop/src/Http/Controllers/OrderController.php old mode 100755 new mode 100644 similarity index 74% rename from packages/Webkul/Customer/src/Http/Controllers/OrderController.php rename to packages/Webkul/Shop/src/Http/Controllers/OrderController.php index 30ebdf581..692885f78 --- a/packages/Webkul/Customer/src/Http/Controllers/OrderController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/OrderController.php @@ -1,6 +1,6 @@ guard('customer')->user()->all_orders; + public function index() { + $orders = $this->order->findWhere([ + 'customer_id' => auth()->guard('customer')->user()->id + ]); return view($this->_config['view'], compact('orders')); } @@ -80,15 +81,15 @@ class OrderController extends Controller */ public function view($id) { - $orders = auth()->guard('customer')->user()->all_orders; + $order = $this->order->findOneWhere([ + 'customer_id' => auth()->guard('customer')->user()->id, + 'id' => $id + ]); - if(isset($orders) && count($orders)) { - $order = $orders->first(); + if (! $order) + abort(404); - return view($this->_config['view'], compact('order')); - } else { - return redirect()->route( 'customer.orders.index'); - } + return view($this->_config['view'], compact('order')); } /** @@ -99,10 +100,10 @@ class OrderController extends Controller */ public function print($id) { - $invoice = $this->invoice->find($id); + $invoice = $this->invoice->findOrFail($id); $pdf = PDF::loadView('shop::customers.account.orders.pdf', compact('invoice'))->setPaper('a4'); return $pdf->download('invoice-' . $invoice->created_at->format('d-m-Y') . '.pdf'); } -} +} \ No newline at end of file diff --git a/packages/Webkul/Shop/src/Http/Controllers/ReviewController.php b/packages/Webkul/Shop/src/Http/Controllers/ReviewController.php index 50c80424f..67de4cd36 100755 --- a/packages/Webkul/Shop/src/Http/Controllers/ReviewController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/ReviewController.php @@ -119,19 +119,17 @@ class ReviewController extends Controller */ public function destroy($id) { - $reviews = auth()->guard('customer')->user()->all_reviews; + $reviews = $this->productReview->findOneWhere([ + 'id' => $id, + 'customer_id' => auth()->guard('customer')->user()->id + ]); - if ($reviews->count() > 0) { - foreach ($reviews as $review) { - if ($review->id == $id) { - $this->productReview->delete($id); + if (! $reviews) + abort(404); - session()->flash('success', trans('shop::app.response.delete-success', ['name' => 'Product Review'])); + $this->productReview->delete($id); - return redirect()->route($this->_config['redirect']); - } - } - } + session()->flash('success', trans('shop::app.response.delete-success', ['name' => 'Product Review'])); return redirect()->route($this->_config['redirect']); } diff --git a/packages/Webkul/Shop/src/Http/routes.php b/packages/Webkul/Shop/src/Http/routes.php index f38a989cc..e54a08535 100755 --- a/packages/Webkul/Shop/src/Http/routes.php +++ b/packages/Webkul/Shop/src/Http/routes.php @@ -242,17 +242,17 @@ Route::group(['middleware' => ['web', 'theme', 'locale', 'currency']], function /* Orders route */ //Customer orders(listing) - Route::get('orders', 'Webkul\Customer\Http\Controllers\OrderController@index')->defaults('_config', [ + Route::get('orders', 'Webkul\Shop\Http\Controllers\OrderController@index')->defaults('_config', [ 'view' => 'shop::customers.account.orders.index' ])->name('customer.orders.index'); //Customer orders view summary and status - Route::get('orders/view/{id}', 'Webkul\Customer\Http\Controllers\OrderController@view')->defaults('_config', [ + Route::get('orders/view/{id}', 'Webkul\Shop\Http\Controllers\OrderController@view')->defaults('_config', [ 'view' => 'shop::customers.account.orders.view' ])->name('customer.orders.view'); //Prints invoice - Route::get('orders/print/{id}', 'Webkul\Customer\Http\Controllers\OrderController@print')->defaults('_config', [ + Route::get('orders/print/{id}', 'Webkul\Shop\Http\Controllers\OrderController@print')->defaults('_config', [ 'view' => 'shop::customers.account.orders.print' ])->name('customer.orders.print'); From 9d89ec816d60516f6ee30e35fd047b15a5324387 Mon Sep 17 00:00:00 2001 From: rahul shukla Date: Tue, 9 Apr 2019 14:17:18 +0530 Subject: [PATCH 2/3] comment, variable name changes --- packages/Webkul/Shop/src/Http/Controllers/OrderController.php | 4 ++-- .../Webkul/Shop/src/Http/Controllers/ReviewController.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/Webkul/Shop/src/Http/Controllers/OrderController.php b/packages/Webkul/Shop/src/Http/Controllers/OrderController.php index 692885f78..33c699666 100644 --- a/packages/Webkul/Shop/src/Http/Controllers/OrderController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/OrderController.php @@ -42,8 +42,8 @@ class OrderController extends Controller /** * Create a new controller instance. * - * @param Webkul\Order\Repositories\OrderRepository $order - * @param Webkul\Order\Repositories\InvoiceRepository $invoice + * @param \Webkul\Order\Repositories\OrderRepository $order + * @param \Webkul\Order\Repositories\InvoiceRepository $invoice * @return void */ public function __construct( diff --git a/packages/Webkul/Shop/src/Http/Controllers/ReviewController.php b/packages/Webkul/Shop/src/Http/Controllers/ReviewController.php index 67de4cd36..49a587a7d 100755 --- a/packages/Webkul/Shop/src/Http/Controllers/ReviewController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/ReviewController.php @@ -119,12 +119,12 @@ class ReviewController extends Controller */ public function destroy($id) { - $reviews = $this->productReview->findOneWhere([ + $review = $this->productReview->findOneWhere([ 'id' => $id, 'customer_id' => auth()->guard('customer')->user()->id ]); - if (! $reviews) + if (! $review) abort(404); $this->productReview->delete($id); From 6b247993e44d1c909825731e7e48d628865ac2b8 Mon Sep 17 00:00:00 2001 From: jitendra Date: Tue, 9 Apr 2019 15:22:45 +0530 Subject: [PATCH 3/3] Theme finder issue fixed (Shop changes was reflecting in admin) --- packages/Webkul/Shop/src/Http/Middleware/Theme.php | 10 +++++++--- .../Webkul/Shop/src/Providers/ShopServiceProvider.php | 6 ------ packages/Webkul/Theme/src/ThemeViewFinder.php | 10 +++++++--- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/packages/Webkul/Shop/src/Http/Middleware/Theme.php b/packages/Webkul/Shop/src/Http/Middleware/Theme.php index 10da4aa7a..137858659 100755 --- a/packages/Webkul/Shop/src/Http/Middleware/Theme.php +++ b/packages/Webkul/Shop/src/Http/Middleware/Theme.php @@ -15,13 +15,17 @@ class Theme */ public function handle($request, Closure $next) { - $theme = app('themes'); + $themes = app('themes'); $channel = core()->getCurrentChannel(); if ($channel && $channelThemeCode = $channel->theme) { - if ($theme->exists($channelThemeCode)) { - $theme->set($channelThemeCode); + if ($themes->exists($channelThemeCode)) { + $themes->set($channelThemeCode); + } else { + $themes->set(config('themes.default')); } + } else { + $themes->set(config('themes.default')); } return $next($request); diff --git a/packages/Webkul/Shop/src/Providers/ShopServiceProvider.php b/packages/Webkul/Shop/src/Providers/ShopServiceProvider.php index b23f060cc..a34d29844 100755 --- a/packages/Webkul/Shop/src/Providers/ShopServiceProvider.php +++ b/packages/Webkul/Shop/src/Providers/ShopServiceProvider.php @@ -53,12 +53,6 @@ class ShopServiceProvider extends ServiceProvider */ public function register() { - $themes = $this->app->make('themes'); - - if (! $themes->current() && \Config::get('themes.default')) { - $themes->set(\Config::get('themes.default')); - } - $this->registerConfig(); } diff --git a/packages/Webkul/Theme/src/ThemeViewFinder.php b/packages/Webkul/Theme/src/ThemeViewFinder.php index 0f4a57e56..20d160aec 100755 --- a/packages/Webkul/Theme/src/ThemeViewFinder.php +++ b/packages/Webkul/Theme/src/ThemeViewFinder.php @@ -19,10 +19,14 @@ class ThemeViewFinder extends FileViewFinder // Extract the $view and the $namespace parts list($namespace, $view) = $this->parseNamespaceSegments($name); - $paths = $this->addThemeNamespacePaths($namespace); + if ($namespace != 'admin') { + $paths = $this->addThemeNamespacePaths($namespace); - // Find and return the view - return $this->findInPaths($view, $paths); + // Find and return the view + return $this->findInPaths($view, $paths); + } else { + return $this->findInPaths($view, $this->hints[$namespace]); + } } public function addThemeNamespacePaths($namespace)