From dace5f9ecb64fccaf55c425a52a5d45df33459ff Mon Sep 17 00:00:00 2001 From: devansh bawari Date: Tue, 8 Jun 2021 11:41:21 +0530 Subject: [PATCH] Product Edit Page Handled --- .../views/catalog/products/edit.blade.php | 13 +++++------ packages/Webkul/Core/src/Core.php | 22 +++++++++++++++++++ .../Webkul/Product/src/Models/Product.php | 7 ++++-- 3 files changed, 33 insertions(+), 9 deletions(-) diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/products/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/products/edit.blade.php index 71daa0b7b..617bd736a 100755 --- a/packages/Webkul/Admin/src/Resources/views/catalog/products/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/catalog/products/edit.blade.php @@ -7,14 +7,13 @@ @section('content')
@php - $locale = request()->get('locale') ?: app()->getLocale(); - $channel = request()->get('channel') ?: core()->getDefaultChannelCode(); + /* getting channel and locales */ + $mainConfigurations = core()->getChannelCodeAndLocaleCode(); - $channelLocales = app('Webkul\Core\Repositories\ChannelRepository')->findOneByField('code', $channel)->locales; - - if (! $channelLocales->contains('code', $locale)) { - $locale = config('app.fallback_locale'); - } + /* assigning */ + $locale = $mainConfigurations['localeCode']; + $channel = $mainConfigurations['channelCode']; + $channelLocales = $mainConfigurations['channelLocales']; @endphp {!! view_render_event('bagisto.admin.catalog.product.edit.before', ['product' => $product]) !!} diff --git a/packages/Webkul/Core/src/Core.php b/packages/Webkul/Core/src/Core.php index f16fe1152..33bd7236e 100755 --- a/packages/Webkul/Core/src/Core.php +++ b/packages/Webkul/Core/src/Core.php @@ -282,6 +282,28 @@ class Core return $locale; } + /** + * Get channel code and locale code based on the request. + * + * @return array + */ + public function getChannelCodeAndLocaleCode() + { + $both = [ + 'channelCode' => request()->get('channel') ?: (core()->getCurrentChannelCode() ?: core()->getDefaultChannelCode()), + 'localeCode' => request()->get('locale') ?: app()->getLocale() + ]; + + $channel = $this->channelRepository->findOneByField('code', $both['channelCode']); + $both['channelLocales'] = $channel->locales; + + if (! $both['channelLocales']->contains('code', $both['localeCode'])) { + $both['localeCode'] = $channel->default_locale->code; + } + + return $both; + } + /** * Returns all customer groups. * diff --git a/packages/Webkul/Product/src/Models/Product.php b/packages/Webkul/Product/src/Models/Product.php index 84f6bf6a5..ca14e497c 100755 --- a/packages/Webkul/Product/src/Models/Product.php +++ b/packages/Webkul/Product/src/Models/Product.php @@ -391,9 +391,12 @@ class Product extends Model implements ProductContract return; } - $channel = request()->get('channel') ?: (core()->getCurrentChannelCode() ?: core()->getDefaultChannelCode()); + /* getting channel and locales */ + $mainConfigurations = core()->getChannelCodeAndLocaleCode(); - $locale = request()->get('locale') ?: app()->getLocale(); + /* assigning */ + $locale = $mainConfigurations['localeCode']; + $channel = $mainConfigurations['channelCode']; if ($attribute->value_per_channel) { if ($attribute->value_per_locale) {