1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
UrlProvider.php
См. документацию.
1<?php
2
4
8
10{
11 private const STORE_DOMAINS = [
12 'ru' => 'www.1c-bitrix.ru',
13 'by' => 'www.1c-bitrix.by',
14 'kz' => 'www.1c-bitrix.kz',
15 'en' => 'store.bitrix24.com',
16 'de' => 'store.bitrix24.de',
17 'eu' => 'store.bitrix24.eu',
18 ];
19 private const PRODUCTS_DOMAINS = [
20 'ru' => 'www.1c-bitrix.ru',
21 'by' => 'www.1c-bitrix.by',
22 'kz' => 'www.1c-bitrix.kz',
23 'en' => 'www.bitrix24.com',
24 'de' => 'www.bitrix24.de',
25 'eu' => 'www.bitrix24.eu',
26 'in' => 'www.bitrix24.in',
27 ];
28 private const FEEDBACK_DOMAINS = [
29 'ru' => 'product-feedback.bitrix24.ru',
30 'en' => 'product-feedback.bitrix24.com',
31 ];
32 private const PRIVACY_DOMAINS = [
33 'ru' => 'https://www.bitrix24.ru',
34 'kz' => 'https://www.bitrix24.kz',
35 'en' => 'https://www.bitrix24.com',
36 'de' => 'https://www.bitrix24.de',
37 ];
38
39 protected License $license;
40
41 public function __construct()
42 {
43 $this->license = Application::getInstance()->getLicense();
44 }
45
46 public function getPriceTableUrl(): Uri
47 {
48 $region = $this->license->getRegion();
49 $domain = self::PRODUCTS_DOMAINS[$region ?? 'en'] ?? self::PRODUCTS_DOMAINS['en'];
50 $url = new Uri('https://' . $domain);
51
52 if (in_array($region, ['ru', 'by', 'kz']))
53 {
54 $url->setPath('/buy/products/b24.php');
55 }
56 else
57 {
58 $url->setPath('/prices/self-hosted.php');
59 }
60
61 return $url;
62 }
63
64 public function getPurchaseHistoryUrl(): Uri
65 {
66 $region = $this->license->getRegion();
67 $domain = self::STORE_DOMAINS[$region ?? 'en'] ?? self::STORE_DOMAINS['en'];
68 $url = new Uri('https://' . $domain);
69
70 if (in_array($region, ['ru', 'by', 'kz']))
71 {
72 $url->setPath('/support/key_info.php');
73 }
74 else
75 {
76 $url->setPath('/profile/license-keys.php');
77 }
78
79 return $url;
80 }
81
82 public function getPrivacyPolicyUrl(): Uri
83 {
84 $region = $this->license->getRegion();
85 $url = new Uri(self::PRIVACY_DOMAINS[$region ?? 'en'] ?? self::PRIVACY_DOMAINS['en']);
86
87 if (in_array($region, ['ru', 'kz']))
88 {
89 $url->setPath('/about/privacy.php');
90 }
91 else
92 {
93 $url->setPath('/privacy/');
94 }
95
96 return $url;
97 }
98
99 public function getMailingAgreementUrl(): ?Uri
100 {
101 $region = $this->license->getRegion();
102
103 if (in_array($region, ['ru', 'by', 'kz']))
104 {
105 return new Uri("https://www.bitrix24.$region/about/advertising.php");
106 }
107
108 return null;
109 }
110
111 public function getProductDomain(?string $region = null): Uri
112 {
113 $region ??= $this->license->getRegion();
114 $domain = self::PRODUCTS_DOMAINS[$region ?? 'en'] ?? self::PRODUCTS_DOMAINS['en'];
115
116 return new Uri('https://' . $domain);
117 }
118
119 public function getTechDomain(): string
120 {
121 return $this->license->isCis() ? 'bitrix24.tech' : 'bitrix.info';
122 }
123
124 public function getFeedbackDomain(?string $region = null): string
125 {
126 $region ??= $this->license->getRegion();
127
128 return self::FEEDBACK_DOMAINS[$region ?? 'en'] ?? self::FEEDBACK_DOMAINS['en'];
129 }
130}
static getInstance()
Определения application.php:98
getProductDomain(?string $region=null)
Определения UrlProvider.php:111
getFeedbackDomain(?string $region=null)
Определения UrlProvider.php:124
License $license
Определения UrlProvider.php:39
Определения uri.php:17
$region
Определения .description.php:13
$url
Определения iframe.php:7