Added configuration for category page toolbar

This commit is contained in:
Pranshu Tomar 2020-05-08 21:47:47 +05:30
parent b0a811462f
commit cdf637f833
7 changed files with 138 additions and 10 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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,9 +86,15 @@ class Toolbar extends AbstractProduct
if (isset($params['sort']) && $key == $params['sort'] . '-' . $params['order']) {
return true;
} elseif (! isset($params['sort']) && $key == 'created_at-asc') {
} 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';
}
}