feat: add texts configuration
This commit is contained in:
@@ -3,7 +3,6 @@
|
|||||||
use Bastion\ApplicationFactory;
|
use Bastion\ApplicationFactory;
|
||||||
use Openguru\OpenCartFramework\Logger\OpenCartLogAdapter;
|
use Openguru\OpenCartFramework\Logger\OpenCartLogAdapter;
|
||||||
use Openguru\OpenCartFramework\OpenCart\Decorators\OcRegistryDecorator;
|
use Openguru\OpenCartFramework\OpenCart\Decorators\OcRegistryDecorator;
|
||||||
use Openguru\OpenCartFramework\OpenCart\OcConfigDecorator;
|
|
||||||
|
|
||||||
$sysLibPath = rtrim(DIR_SYSTEM, '/') . '/library/oc_telegram_shop';
|
$sysLibPath = rtrim(DIR_SYSTEM, '/') . '/library/oc_telegram_shop';
|
||||||
$basePath = rtrim(DIR_APPLICATION, '/') . '/..';
|
$basePath = rtrim(DIR_APPLICATION, '/') . '/..';
|
||||||
@@ -353,6 +352,9 @@ TEXT,
|
|||||||
'module_tgshop_feature_coupons' => 0,
|
'module_tgshop_feature_coupons' => 0,
|
||||||
'module_tgshop_feature_vouchers' => 0,
|
'module_tgshop_feature_vouchers' => 0,
|
||||||
'module_tgshop_home_banner_id' => null,
|
'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' => 'Для проверки интеграции через кнопку "Проверить" в интерфейсе Яндекс Метрики, необходимо сначала включить "Режим разработчика" на вкладке "Общие".'
|
'help' => 'Для проверки интеграции через кнопку "Проверить" в интерфейсе Яндекс Метрики, необходимо сначала включить "Режим разработчика" на вкладке "Общие".'
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
'shop' => [
|
'shop' => [
|
||||||
'module_tgshop_enable_store' => [
|
'module_tgshop_enable_store' => [
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
@@ -545,7 +546,6 @@ HTML,
|
|||||||
HTML,
|
HTML,
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
'orders' => [
|
'orders' => [
|
||||||
'module_tgshop_order_default_status_id' => [
|
'module_tgshop_order_default_status_id' => [
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
@@ -560,6 +560,26 @@ HTML,
|
|||||||
'help' => 'Группа покупателей, которая будет назначена для заказов, оформленных через Telegram-магазин.',
|
'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' => 'Текст, отображаемый при успешном создании заказа.',
|
||||||
|
],
|
||||||
|
],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ $_['tab_telegram'] = 'Telegram';
|
|||||||
$_['tab_statistics'] = 'Статистика';
|
$_['tab_statistics'] = 'Статистика';
|
||||||
$_['tab_shop'] = 'Магазин';
|
$_['tab_shop'] = 'Магазин';
|
||||||
$_['tab_orders'] = 'Заказы';
|
$_['tab_orders'] = 'Заказы';
|
||||||
|
$_['tab_texts'] = 'Тексты';
|
||||||
|
|
||||||
$_['lbl_module_tgshop_status'] = 'Статус';
|
$_['lbl_module_tgshop_status'] = 'Статус';
|
||||||
$_['lbl_module_tgshop_app_name'] = 'Название приложения';
|
$_['lbl_module_tgshop_app_name'] = 'Название приложения';
|
||||||
@@ -34,6 +35,9 @@ $_['lbl_module_tgshop_feature_coupons'] = 'Промокоды';
|
|||||||
$_['lbl_module_tgshop_feature_vouchers'] = 'Подарочные сертификаты';
|
$_['lbl_module_tgshop_feature_vouchers'] = 'Подарочные сертификаты';
|
||||||
$_['lbl_module_tgshop_home_banner_id'] = 'Баннер на главной';
|
$_['lbl_module_tgshop_home_banner_id'] = 'Баннер на главной';
|
||||||
$_['lbl_module_tgshop_debug'] = 'Режим разработчика';
|
$_['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
|
||||||
$_['entry_status'] = 'Статус';
|
$_['entry_status'] = 'Статус';
|
||||||
|
|||||||
@@ -95,6 +95,11 @@ class ControllerExtensionTgshopHandle extends Controller
|
|||||||
FILTER_VALIDATE_BOOLEAN
|
FILTER_VALIDATE_BOOLEAN
|
||||||
),
|
),
|
||||||
'home_banner_id' => $this->config->get('module_tgshop_home_banner_id'),
|
'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 () {
|
$app->bind(OcModelCatalogProductAdapter::class, function () {
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ class SettingsHandler
|
|||||||
'feature_coupons' => $this->settings->get('feature_coupons') ?? false,
|
'feature_coupons' => $this->settings->get('feature_coupons') ?? false,
|
||||||
'feature_vouchers' => $this->settings->get('feature_vouchers') ?? false,
|
'feature_vouchers' => $this->settings->get('feature_vouchers') ?? false,
|
||||||
'currency_code' => $this->settings->get('oc_default_currency', 'RUB'),
|
'currency_code' => $this->settings->get('oc_default_currency', 'RUB'),
|
||||||
|
'texts' => $this->settings->get('texts'),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-else-if="hasMore === false" class="text-xs text-center mt-4 pt-4 mb-2 border-t">
|
<div v-else-if="hasMore === false" class="text-xs text-center mt-4 pt-4 mb-2 border-t">
|
||||||
{{ settings.noMoreProductsMessage }}
|
{{ settings.texts.no_more_products }}
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,11 @@ export const useSettingsStore = defineStore('settings', {
|
|||||||
'--product_list_title_max_lines': 2,
|
'--product_list_title_max_lines': 2,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
noMoreProductsMessage: '🔚 Это всё по текущему запросу. Попробуйте уточнить фильтры или поиск.',
|
texts: {
|
||||||
|
no_more_products: 'Нет товаров',
|
||||||
|
empty_cart: 'Корзина пуста',
|
||||||
|
order_created_success: 'Заказ успешно оформлен.',
|
||||||
|
},
|
||||||
}),
|
}),
|
||||||
|
|
||||||
actions: {
|
actions: {
|
||||||
@@ -46,6 +50,7 @@ export const useSettingsStore = defineStore('settings', {
|
|||||||
this.feature_coupons = settings.feature_coupons;
|
this.feature_coupons = settings.feature_coupons;
|
||||||
this.feature_vouchers = settings.feature_vouchers;
|
this.feature_vouchers = settings.feature_vouchers;
|
||||||
this.currency_code = settings.currency_code;
|
this.currency_code = settings.currency_code;
|
||||||
|
this.texts = settings.texts;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -125,7 +125,7 @@
|
|||||||
class="text-center rounded-2xl"
|
class="text-center rounded-2xl"
|
||||||
>
|
>
|
||||||
<div class="text-5xl mb-4">🛒</div>
|
<div class="text-5xl mb-4">🛒</div>
|
||||||
<p class="text-lg mb-3">Ваша корзина пуста</p>
|
<p class="text-lg mb-3">{{ settings.texts.empty_cart }}</p>
|
||||||
<RouterLink class="btn btn-primary" to="/">Начать покупки</RouterLink>
|
<RouterLink class="btn btn-primary" to="/">Начать покупки</RouterLink>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p class="text-2xl font-bold mb-3">Спасибо за заказ!</p>
|
<p class="text-2xl font-bold mb-3">Спасибо за заказ!</p>
|
||||||
<p class="text-center mb-4">Ваш заказ успешно оформлен и будет обработан в ближайшее время.</p>
|
<p class="text-center mb-4">{{ settings.texts.order_created_success }}</p>
|
||||||
|
|
||||||
<ul v-if="checkout.order" class="list w-full bg-base-200 mb-4">
|
<ul v-if="checkout.order" class="list w-full bg-base-200 mb-4">
|
||||||
<li class="list-row flex justify-between">
|
<li class="list-row flex justify-between">
|
||||||
@@ -41,9 +41,11 @@ import {useCheckoutStore} from "@/stores/CheckoutStore.js";
|
|||||||
import {onMounted} from "vue";
|
import {onMounted} from "vue";
|
||||||
import {useYaMetrikaStore} from "@/stores/yaMetrikaStore.js";
|
import {useYaMetrikaStore} from "@/stores/yaMetrikaStore.js";
|
||||||
import {useRoute} from "vue-router";
|
import {useRoute} from "vue-router";
|
||||||
|
import {useSettingsStore} from "@/stores/SettingsStore.js";
|
||||||
|
|
||||||
const checkout = useCheckoutStore();
|
const checkout = useCheckoutStore();
|
||||||
const yaMetrika = useYaMetrikaStore();
|
const yaMetrika = useYaMetrikaStore();
|
||||||
|
const settings = useSettingsStore();
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
|||||||
Reference in New Issue
Block a user