From cdf637f833791aa5589050fb40ccc8a7c9ad899f Mon Sep 17 00:00:00 2001 From: Pranshu Tomar Date: Fri, 8 May 2020 21:47:47 +0530 Subject: [PATCH] Added configuration for category page toolbar --- packages/Webkul/Admin/src/Config/system.php | 55 ++++++++++++++++++- .../Admin/src/Resources/lang/ar/app.php | 15 ++++- .../Admin/src/Resources/lang/en/app.php | 15 ++++- .../Admin/src/Resources/lang/fa/app.php | 15 ++++- .../Admin/src/Resources/lang/nl/app.php | 15 ++++- .../Admin/src/Resources/lang/pt_BR/app.php | 15 ++++- .../Webkul/Product/src/Helpers/Toolbar.php | 18 ++++-- 7 files changed, 138 insertions(+), 10 deletions(-) diff --git a/packages/Webkul/Admin/src/Config/system.php b/packages/Webkul/Admin/src/Config/system.php index e5c2dc139..84a771810 100644 --- a/packages/Webkul/Admin/src/Config/system.php +++ b/packages/Webkul/Admin/src/Config/system.php @@ -120,10 +120,63 @@ return [ 'type' => 'boolean', ], ], + ], [ + 'key' => 'catalog.products.storefront', + 'name' => 'admin::app.admin.system.storefront', + 'sort' => 2, + 'fields' => [ + [ + 'name' => 'mode', + 'title' => 'admin::app.admin.system.default-list-mode', + 'type' => 'select', + 'options' => [ + [ + 'title' => 'admin::app.admin.system.grid', + 'value' => 'grid', + ], [ + 'title' => 'admin::app.admin.system.list', + 'value' => 'list', + ], + ], + 'channel_based' => true, + ], [ + 'name' => 'products_per_page', + 'title' => 'admin::app.admin.system.products-per-page', + 'type' => 'text', + 'info' => 'admin::app.admin.system.comma-seperated', + 'channel_based' => true, + ], [ + 'name' => 'sort_by', + 'title' => 'admin::app.admin.system.sort-by', + 'type' => 'select', + 'options' => [ + [ + 'title' => 'admin::app.admin.system.from-z-a', + 'value' => 'name-desc', + ], [ + 'title' => 'admin::app.admin.system.from-a-z', + 'value' => 'name-asc', + ], [ + 'title' => 'admin::app.admin.system.newest-first', + 'value' => 'created_at-desc', + ], [ + 'title' => 'admin::app.admin.system.oldest-first', + 'value' => 'created_at-asc', + ], [ + 'title' => 'admin::app.admin.system.cheapest-first', + 'value' => 'price-asc', + ], [ + 'title' => 'admin::app.admin.system.expensive-first', + 'value' => 'price-desc', + ], + ], + 'channel_based' => true, + ] + ], ], [ 'key' => 'catalog.products.review', 'name' => 'admin::app.admin.system.review', - 'sort' => 2, + 'sort' => 3, 'fields' => [ [ 'name' => 'guest_review', diff --git a/packages/Webkul/Admin/src/Resources/lang/ar/app.php b/packages/Webkul/Admin/src/Resources/lang/ar/app.php index 6f11c52f7..491267f12 100644 --- a/packages/Webkul/Admin/src/Resources/lang/ar/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/ar/app.php @@ -1309,7 +1309,20 @@ return [ 'all-channels' => 'الكل', 'all-locales' => 'الكل', 'invoice-slip-design' => 'Invoice Slip Design', - 'logo' => 'logo' + 'logo' => 'Logo', + 'storefront' => 'Storefront', + 'default-list-mode' => 'Default List Mode', + 'grid' => 'Grid', + 'list' => 'List', + 'products-per-page' => 'Products Per Page', + 'sort-by' => 'Sort By', + 'from-z-a' => 'From Z-A', + 'from-a-z' => 'From A-Z', + 'newest-first' => 'Newest First', + 'oldest-first' => 'Oldest First', + 'cheapest-first' => 'Cheapest First', + 'expensive-first' => 'Expensive First', + 'comma-seperated' => 'Comma Seperated', ] ] ]; diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php index 44e0251a6..0aac964d0 100755 --- a/packages/Webkul/Admin/src/Resources/lang/en/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php @@ -1316,7 +1316,20 @@ return [ 'all-channels' => 'All', 'all-locales' => 'All', 'invoice-slip-design' => 'Invoice Slip Design', - 'logo' => 'logo' + 'logo' => 'Logo', + 'storefront' => 'Storefront', + 'default-list-mode' => 'Default List Mode', + 'grid' => 'Grid', + 'list' => 'List', + 'products-per-page' => 'Products Per Page', + 'sort-by' => 'Sort By', + 'from-z-a' => 'From Z-A', + 'from-a-z' => 'From A-Z', + 'newest-first' => 'Newest First', + 'oldest-first' => 'Oldest First', + 'cheapest-first' => 'Cheapest First', + 'expensive-first' => 'Expensive First', + 'comma-seperated' => 'Comma Seperated', ] ] ]; diff --git a/packages/Webkul/Admin/src/Resources/lang/fa/app.php b/packages/Webkul/Admin/src/Resources/lang/fa/app.php index 2ab2d2680..c444f118c 100644 --- a/packages/Webkul/Admin/src/Resources/lang/fa/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/fa/app.php @@ -1315,7 +1315,20 @@ return [ 'all-locales' => 'همه', 'sandbox' => 'Sandbox', 'invoice-slip-design' => 'Invoice Slip Design', - 'logo' => 'logo' + 'logo' => 'Logo', + 'storefront' => 'Storefront', + 'default-list-mode' => 'Default List Mode', + 'grid' => 'Grid', + 'list' => 'List', + 'products-per-page' => 'Products Per Page', + 'sort-by' => 'Sort By', + 'from-z-a' => 'From Z-A', + 'from-a-z' => 'From A-Z', + 'newest-first' => 'Newest First', + 'oldest-first' => 'Oldest First', + 'cheapest-first' => 'Cheapest First', + 'expensive-first' => 'Expensive First', + 'comma-seperated' => 'Comma Seperated', ] ] ]; diff --git a/packages/Webkul/Admin/src/Resources/lang/nl/app.php b/packages/Webkul/Admin/src/Resources/lang/nl/app.php index 62a81df45..b210d1cac 100644 --- a/packages/Webkul/Admin/src/Resources/lang/nl/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/nl/app.php @@ -1314,7 +1314,20 @@ return [ 'all-channels' => 'Alles', 'all-locales' => 'Alles', 'invoice-slip-design' => 'Invoice Slip Design', - 'logo' => 'logo' + 'logo' => 'Logo', + 'storefront' => 'Storefront', + 'default-list-mode' => 'Default List Mode', + 'grid' => 'Grid', + 'list' => 'List', + 'products-per-page' => 'Products Per Page', + 'sort-by' => 'Sort By', + 'from-z-a' => 'From Z-A', + 'from-a-z' => 'From A-Z', + 'newest-first' => 'Newest First', + 'oldest-first' => 'Oldest First', + 'cheapest-first' => 'Cheapest First', + 'expensive-first' => 'Expensive First', + 'comma-seperated' => 'Comma Seperated', ] ] ]; diff --git a/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php b/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php index 1b4c41e40..b72df6a8b 100755 --- a/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php @@ -1318,7 +1318,20 @@ return [ 'all-locales' => 'Todos', 'sandbox' => 'Sandbox', 'invoice-slip-design' => 'Design da Nota do Pedido', - 'logo' => 'logo' + 'logo' => 'Logo', + 'storefront' => 'Storefront', + 'default-list-mode' => 'Default List Mode', + 'grid' => 'Grid', + 'list' => 'List', + 'products-per-page' => 'Products Per Page', + 'sort-by' => 'Sort By', + 'from-z-a' => 'From Z-A', + 'from-a-z' => 'From A-Z', + 'newest-first' => 'Newest First', + 'oldest-first' => 'Oldest First', + 'cheapest-first' => 'Cheapest First', + 'expensive-first' => 'Expensive First', + 'comma-seperated' => 'Comma Seperated', ] ] ]; diff --git a/packages/Webkul/Product/src/Helpers/Toolbar.php b/packages/Webkul/Product/src/Helpers/Toolbar.php index 60d1aa093..7784b9fc8 100755 --- a/packages/Webkul/Product/src/Helpers/Toolbar.php +++ b/packages/Webkul/Product/src/Helpers/Toolbar.php @@ -27,7 +27,9 @@ class Toolbar extends AbstractProduct */ public function getAvailableLimits() { - return [9, 15, 21, 28]; + return core()->getConfigData('catalog.products.storefront.products_per_page') + ? explode(',', core()->getConfigData('catalog.products.storefront.products_per_page')) + : [9, 15, 21, 28]; } /** @@ -84,8 +86,14 @@ class Toolbar extends AbstractProduct if (isset($params['sort']) && $key == $params['sort'] . '-' . $params['order']) { return true; - } elseif (! isset($params['sort']) && $key == 'created_at-asc') { - return true; + } elseif (! isset($params['sort'])) { + $sortBy = core()->getConfigData('catalog.products.storefront.sort_by') + ? core()->getConfigData('catalog.products.storefront.sort_by') + : 'created_at-asc'; + + if ($key == $sortBy) { + return true; + } } return false; @@ -138,6 +146,8 @@ class Toolbar extends AbstractProduct return $params['mode']; } - return 'grid'; + return core()->getConfigData('catalog.products.storefront.mode') + ? core()->getConfigData('catalog.products.storefront.mode') + : 'grid'; } } \ No newline at end of file