From 34dfe9028693ad488d40f2015af482d789f012c6 Mon Sep 17 00:00:00 2001 From: Nikita Kiselev Date: Mon, 27 Oct 2025 11:13:04 +0300 Subject: [PATCH] feat: add texts configuration --- .../controller/extension/module/tgshop.php | 26 ++++++++++++++++--- .../ru-ru/extension/module/tgshop.php | 4 +++ .../controller/extension/tgshop/handle.php | 5 ++++ .../src/Handlers/SettingsHandler.php | 1 + spa/src/components/ProductsList.vue | 2 +- spa/src/stores/SettingsStore.js | 7 ++++- spa/src/views/Cart.vue | 2 +- spa/src/views/OrderCreated.vue | 4 ++- 8 files changed, 44 insertions(+), 7 deletions(-) diff --git a/module/oc_telegram_shop/upload/admin/controller/extension/module/tgshop.php b/module/oc_telegram_shop/upload/admin/controller/extension/module/tgshop.php index 1676847..39d553f 100755 --- a/module/oc_telegram_shop/upload/admin/controller/extension/module/tgshop.php +++ b/module/oc_telegram_shop/upload/admin/controller/extension/module/tgshop.php @@ -3,7 +3,6 @@ use Bastion\ApplicationFactory; use Openguru\OpenCartFramework\Logger\OpenCartLogAdapter; use Openguru\OpenCartFramework\OpenCart\Decorators\OcRegistryDecorator; -use Openguru\OpenCartFramework\OpenCart\OcConfigDecorator; $sysLibPath = rtrim(DIR_SYSTEM, '/') . '/library/oc_telegram_shop'; $basePath = rtrim(DIR_APPLICATION, '/') . '/..'; @@ -353,6 +352,9 @@ TEXT, 'module_tgshop_feature_coupons' => 0, 'module_tgshop_feature_vouchers' => 0, 'module_tgshop_home_banner_id' => null, + 'module_tgshop_text_no_more_products' => 'Это всё по текущему запросу. Попробуйте уточнить фильтры или поиск.', + 'module_tgshop_text_empty_cart' => 'Ваша корзина пуста', + 'module_tgshop_text_order_created_success' => 'Ваш заказ успешно оформлен и будет обработан в ближайшее время.', ]; } @@ -472,7 +474,6 @@ HTML, 'help' => 'Для проверки интеграции через кнопку "Проверить" в интерфейсе Яндекс Метрики, необходимо сначала включить "Режим разработчика" на вкладке "Общие".' ], ], - 'shop' => [ 'module_tgshop_enable_store' => [ 'type' => 'select', @@ -545,7 +546,6 @@ HTML, HTML, ], ], - 'orders' => [ 'module_tgshop_order_default_status_id' => [ 'type' => 'select', @@ -560,6 +560,26 @@ HTML, 'help' => 'Группа покупателей, которая будет назначена для заказов, оформленных через Telegram-магазин.', ], ], + + 'texts' => [ + 'module_tgshop_text_no_more_products' => [ + 'type' => 'text', + 'placeholder' => 'Это всё по текущему запросу. Попробуйте уточнить фильтры или поиск.', + 'help' => 'Текст, отображаемый в конце списка, когда больше нет доступных товаров. Покупатель дошел до конца списка.', + ], + + 'module_tgshop_text_empty_cart' => [ + 'type' => 'text', + 'placeholder' => 'Ваша корзина пуста', + 'help' => 'Текст, отображаемый на странице просмотра корзины, если в ней нет товаров.', + ], + + 'module_tgshop_text_order_created_success' => [ + 'type' => 'text', + 'placeholder' => 'Ваш заказ успешно оформлен и будет обработан в ближайшее время.', + 'help' => 'Текст, отображаемый при успешном создании заказа.', + ], + ], ]; } diff --git a/module/oc_telegram_shop/upload/admin/language/ru-ru/extension/module/tgshop.php b/module/oc_telegram_shop/upload/admin/language/ru-ru/extension/module/tgshop.php index 7fc524b..b86e4f8 100755 --- a/module/oc_telegram_shop/upload/admin/language/ru-ru/extension/module/tgshop.php +++ b/module/oc_telegram_shop/upload/admin/language/ru-ru/extension/module/tgshop.php @@ -11,6 +11,7 @@ $_['tab_telegram'] = 'Telegram'; $_['tab_statistics'] = 'Статистика'; $_['tab_shop'] = 'Магазин'; $_['tab_orders'] = 'Заказы'; +$_['tab_texts'] = 'Тексты'; $_['lbl_module_tgshop_status'] = 'Статус'; $_['lbl_module_tgshop_app_name'] = 'Название приложения'; @@ -34,6 +35,9 @@ $_['lbl_module_tgshop_feature_coupons'] = 'Промокоды'; $_['lbl_module_tgshop_feature_vouchers'] = 'Подарочные сертификаты'; $_['lbl_module_tgshop_home_banner_id'] = 'Баннер на главной'; $_['lbl_module_tgshop_debug'] = 'Режим разработчика'; +$_['lbl_module_tgshop_text_no_more_products'] = 'Текст в конце списка товаров'; +$_['lbl_module_tgshop_text_empty_cart'] = 'Текст пустой корзины'; +$_['lbl_module_tgshop_text_order_created_success'] = 'Текст для успешного заказа'; // Entry $_['entry_status'] = 'Статус'; diff --git a/module/oc_telegram_shop/upload/catalog/controller/extension/tgshop/handle.php b/module/oc_telegram_shop/upload/catalog/controller/extension/tgshop/handle.php index 9d2717b..3bce5d4 100755 --- a/module/oc_telegram_shop/upload/catalog/controller/extension/tgshop/handle.php +++ b/module/oc_telegram_shop/upload/catalog/controller/extension/tgshop/handle.php @@ -95,6 +95,11 @@ class ControllerExtensionTgshopHandle extends Controller FILTER_VALIDATE_BOOLEAN ), 'home_banner_id' => $this->config->get('module_tgshop_home_banner_id'), + 'texts' => [ + 'no_more_products' => $this->config->get('module_tgshop_text_no_more_products'), + 'empty_cart' => $this->config->get('module_tgshop_text_empty_cart'), + 'order_created_success' => $this->config->get('module_tgshop_text_order_created_success'), + ], ]); $app->bind(OcModelCatalogProductAdapter::class, function () { diff --git a/module/oc_telegram_shop/upload/oc_telegram_shop/src/Handlers/SettingsHandler.php b/module/oc_telegram_shop/upload/oc_telegram_shop/src/Handlers/SettingsHandler.php index 4e2e0bf..9a91fc1 100755 --- a/module/oc_telegram_shop/upload/oc_telegram_shop/src/Handlers/SettingsHandler.php +++ b/module/oc_telegram_shop/upload/oc_telegram_shop/src/Handlers/SettingsHandler.php @@ -57,6 +57,7 @@ class SettingsHandler 'feature_coupons' => $this->settings->get('feature_coupons') ?? false, 'feature_vouchers' => $this->settings->get('feature_vouchers') ?? false, 'currency_code' => $this->settings->get('oc_default_currency', 'RUB'), + 'texts' => $this->settings->get('texts'), ]); } diff --git a/spa/src/components/ProductsList.vue b/spa/src/components/ProductsList.vue index d88181a..47003ff 100644 --- a/spa/src/components/ProductsList.vue +++ b/spa/src/components/ProductsList.vue @@ -31,7 +31,7 @@
- {{ settings.noMoreProductsMessage }} + {{ settings.texts.no_more_products }}
diff --git a/spa/src/stores/SettingsStore.js b/spa/src/stores/SettingsStore.js index 9c504f2..72e2c38 100644 --- a/spa/src/stores/SettingsStore.js +++ b/spa/src/stores/SettingsStore.js @@ -23,7 +23,11 @@ export const useSettingsStore = defineStore('settings', { '--product_list_title_max_lines': 2, } }, - noMoreProductsMessage: '🔚 Это всё по текущему запросу. Попробуйте уточнить фильтры или поиск.', + texts: { + no_more_products: 'Нет товаров', + empty_cart: 'Корзина пуста', + order_created_success: 'Заказ успешно оформлен.', + }, }), actions: { @@ -46,6 +50,7 @@ export const useSettingsStore = defineStore('settings', { this.feature_coupons = settings.feature_coupons; this.feature_vouchers = settings.feature_vouchers; this.currency_code = settings.currency_code; + this.texts = settings.texts; } } }); diff --git a/spa/src/views/Cart.vue b/spa/src/views/Cart.vue index b317092..b269b9a 100644 --- a/spa/src/views/Cart.vue +++ b/spa/src/views/Cart.vue @@ -125,7 +125,7 @@ class="text-center rounded-2xl" >
🛒
-

Ваша корзина пуста

+

{{ settings.texts.empty_cart }}

Начать покупки diff --git a/spa/src/views/OrderCreated.vue b/spa/src/views/OrderCreated.vue index 34682f5..3841944 100644 --- a/spa/src/views/OrderCreated.vue +++ b/spa/src/views/OrderCreated.vue @@ -8,7 +8,7 @@

Спасибо за заказ!

-

Ваш заказ успешно оформлен и будет обработан в ближайшее время.

+

{{ settings.texts.order_created_success }}