diff --git a/composer.json b/composer.json index b5b4ce0..420d7d1 100644 --- a/composer.json +++ b/composer.json @@ -11,7 +11,8 @@ } ], "require": { - "php": "^8" + "php": "^8", + "seiger/sgallery": "*" }, "autoload": { "psr-4": { diff --git a/lang/en/global.php b/lang/en/global.php index f192418..d30b1e7 100644 --- a/lang/en/global.php +++ b/lang/en/global.php @@ -51,4 +51,8 @@ 'category_help' => 'Define the main category of the product. Used to form the main link and navigation chain.', 'catalog_root' => 'Catalog root', 'catalog_root_help' => 'Define the resource that will be used as the root of the product catalog by default.', + 'to_list_products' => 'To the list of products', + 'price_help' => 'The main price of the product is in the currency of the store.', + 'categories' => 'Categories', + 'categories_help' => 'List of categories in which the product should be displayed. Formed from the resource tree from the root, which is designated as a directory. If a subcategory is selected, the product will be displayed in all higher categories.', ]; \ No newline at end of file diff --git a/lang/ru/global.php b/lang/ru/global.php index b73f126..60362d7 100644 --- a/lang/ru/global.php +++ b/lang/ru/global.php @@ -51,4 +51,8 @@ 'category_help' => 'Определите основную категорию продукта. Используется для формирования основной ссылки и цепочки навигации.', 'catalog_root' => 'Корень каталога', 'catalog_root_help' => 'Определите ресурс, который будет использоваться в качестве корня каталога товаров по умолчанию.', + 'to_list_products' => 'К списоку товаров', + 'price_help' => 'Основная стоимость товара в валюте магазина.', + 'categories' => 'Категории', + 'categories_help' => 'Список категорий в которых должен отображаться товар. Формируется из дерева ресурсов от корня, который обозначен как каталог. Если выбрана подкатегория - товар будет отображен во всех вышестоящих категориях.', ]; \ No newline at end of file diff --git a/lang/uk/global.php b/lang/uk/global.php index 8f4f4a6..0981618 100644 --- a/lang/uk/global.php +++ b/lang/uk/global.php @@ -51,4 +51,8 @@ 'category_help' => 'Визначте основну категорію товара. Використовується для формування основного посилання та ланцюжка навігації.', 'catalog_root' => 'Корінь каталогу', 'catalog_root_help' => 'Визначте ресурс, що буде використовуватись як корінь каталогу товарів типово.', + 'to_list_products' => 'До списку товарів', + 'price_help' => 'Основна ціна товару в валюті магазину.', + 'categories' => 'Категорії', + 'categories_help' => 'Список категорій, у яких повинен відображатися товар. Формується із дерева ресурсів від кореня, який позначено як каталог. Якщо обрано підкатегорію - товар буде відображено у всіх батьківських категоріях.', ]; \ No newline at end of file diff --git a/module/sCommerceModule.php b/module/sCommerceModule.php index 7dadd78..bb74a9e 100644 --- a/module/sCommerceModule.php +++ b/module/sCommerceModule.php @@ -25,6 +25,7 @@ break; case "product": $tabs = ['product']; + $data['categories'] = []; break; case "settings": if (!evo()->hasPermission('settings')) { diff --git a/src/Controllers/sCommerceController.php b/src/Controllers/sCommerceController.php index 81b7124..a7c56ab 100644 --- a/src/Controllers/sCommerceController.php +++ b/src/Controllers/sCommerceController.php @@ -1,9 +1,12 @@ getConfig('scom_catalog_root', evo()->getConfig('site_start', 1))); + $this->categories[$root->id] = $root->pagetitle; + if ($root->hasChildren()) { + foreach ($root->children as $item) { + $this->categoryCrumb($item); + } + } + return $this->categories; + } + /** * Price validation * @@ -219,4 +239,22 @@ public function view(string $tpl, array $data = []) { return \View::make('sCommerce::'.$tpl, $data); } + + /** + * Categories name as crumb + * + * @param $resource + * @param $crumb + * @return void + */ + protected function categoryCrumb($resource, $crumb = ''): void + { + $crumb = trim($crumb) ? $crumb . ' > ' . $resource->pagetitle : $resource->pagetitle; + $this->categories[$resource->id] = $crumb; + if ($resource->hasChildren()) { + foreach ($resource->children as $item) { + $this->categoryCrumb($item, $crumb); + } + } + } } diff --git a/views/partials/style.blade.php b/views/partials/style.blade.php index 707e8fc..a08516c 100644 --- a/views/partials/style.blade.php +++ b/views/partials/style.blade.php @@ -4,11 +4,14 @@ #actions .btn-group .btn .fas, #_actions .btn-group .btn .fas, .sectionTrans .btn-group .btn .fa, .sectionTrans .btn-group .btn .fas{display:none;width:1em;font-size:1em;text-align:center;} #copyright{position:fixed;bottom:0;right:0;} #copyright img{width:35px;} + #preview.form-control{max-width:85px;background:#CECECF;} input[type=checkbox], input[type=radio] {padding:0.5em;} span[data-actual]::before{content:attr(data-actual);} + ul.select2-selection__rendered{margin-left:unset;} .alertify .ajs-footer .ajs-buttons .ajs-button.ajs-ok {color:#fff;background-color:#d9534f;border-color:#d9534f;} .badge.bg-seigerit{background-color:#0057B8 !important;color:#FFD700;font-size:85%;} .hidden{display:none;} + .form-row .col{margin-right:20px;} .tab-row-container{background:#CECECF;} .tab-row .tab a{color:#0D0D0D;font-family:'Roboto';font-size:14px;font-weight:400;line-height:115%;text-transform:uppercase;padding:16px;} .scom-conters{margin-bottom:24px;margin-top:8px;} diff --git a/views/productTab.blade.php b/views/productTab.blade.php index 0885067..04c682f 100644 --- a/views/productTab.blade.php +++ b/views/productTab.blade.php @@ -14,7 +14,7 @@