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 @@
published) && $product->published) checked @endif> -   {{$product->views ?? 0}} + @if(evo()->getConfig('scom_rating_on', 1) == 1)  {{$product->views ?? 0}}@endif @if(evo()->getConfig('scom_rating_on', 1) == 1)  {{$product->rating ?? 0}}@endif @if(evo()->getConfig('scom_rating_on', 1) == 1)  {{$product->quantity ?? 0}}@endif
@@ -35,33 +35,6 @@ -
-
-
- - -
-
-
- @php($parentlookup = false) - @if(($product->parent ?? evo()->getConfig('scom_catalog_root', 0)) == 0) - @php($parentname = evo()->getConfig('site_name')) - @else - @php($parentlookup = ($product->parent ?? evo()->getConfig('scom_catalog_root', 1))) - @endif - @if($parentlookup !== false && is_numeric($parentlookup)) - @php($parentname = \EvolutionCMS\Models\SiteContent::withTrashed()->select('pagetitle')->find($parentlookup)->pagetitle) - @if(!$parentname) - @php(evo()->webAlertAndQuit($_lang["error_no_parent"])) - @endif - @endif - - {{$parentlookup}} ({{entities($parentname)}}) - -
-
-
-
@@ -73,112 +46,99 @@
-
+
-
- - +
+ +
-
- {{--@if(evo()->getConfig('sart_features_on', 1) == 1) -
-
-
- - -
-
- @php($product->feature = $product->features->pluck('fid')->toArray()) - -
-
-
- @endif--}} - {{--
+
- - + +
- @php($product->tag = $product->tags()->pluck('tagid')->toArray()) - +
-
--}} - {{--
+
+
- + +
- @php($productRelevants = data_is_json($product->relevants ?? '', true) ?: []) - -
-
-
--}} -
-
-
- - -
-
- - -
-
- + @endif + + {{$parentlookup}} ({{entities($parentname)}}) +
-
- - +
+ +
-
- - @lang('global.preview') +
+
+@if($product->product) +
+
+
+ + +
+
+ {!! sGallery::initialise('section', 'product', 'i') !!} +
+
+
+@endif @push('scripts.bot')
diff --git a/views/productsTab.blade.php b/views/productsTab.blade.php index 21b3850..631c12c 100644 --- a/views/productsTab.blade.php +++ b/views/productsTab.blade.php @@ -83,6 +83,11 @@ @endif + @if (evo()->getConfig('scom_show_field_products_views', 1) == 1) + + + + @endif @lang('global.onlineusers_action') @@ -126,6 +131,9 @@ @if (evo()->getConfig('scom_show_field_products_visibility', 1) == 1) {{$product->published}} @endif + @if (evo()->getConfig('scom_show_field_products_views', 1) == 1) + {{$product->views}} + @endif @endforeach diff --git a/views/settingsTab.blade.php b/views/settingsTab.blade.php index 5701468..8a0fda9 100644 --- a/views/settingsTab.blade.php +++ b/views/settingsTab.blade.php @@ -255,6 +255,16 @@
+
+
+ + +
+
+ getConfig('scom_show_field_products_views', 1) == 1) checked @endif> + +
+