1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
lang.php
См. документацию.
1
<?php
2
3
namespace
Bitrix\Rest;
4
5
use Bitrix\Main\Localization\Loc;
6
use Bitrix\Main;
7
8
class
Lang
9
{
10
private
const
DEFAULT_LANG =
'en'
;
11
private
static
$languageList;
12
private
const
KEY_LANG_ALL =
'LANG_ALL'
;
13
19
public
static
function
listLanguage
():
array
20
{
21
if
(static::$languageList ===
null
)
22
{
23
static::$languageList = [
24
LANGUAGE_ID,
25
Loc::getDefaultLang(LANGUAGE_ID),
26
];
27
$licenseLang =
null
;
28
if
(
Main
\Loader::includeModule(
'bitrix24'
))
29
{
30
$licenseLang = \CBitrix24::getLicensePrefix();
31
}
32
else
33
{
34
$dbSites
= \CSite::getList(
35
'sort'
,
36
'asc'
,
37
[
38
'DEFAULT'
=>
'Y'
,
39
'ACTIVE'
=>
'Y'
40
]
41
);
42
if
(
$site
=
$dbSites
->fetch() && !empty(
$site
[
'LANGUAGE_ID'
]))
43
{
44
$licenseLang =
$site
[
'LANGUAGE_ID'
];
45
}
46
}
47
48
if
($licenseLang ===
null
)
49
{
50
$licenseLang = static::DEFAULT_LANG;
51
}
52
53
static::$languageList[] = $licenseLang;
54
}
55
56
return
static::$languageList;
57
}
58
59
public
static
function
mergeFromLangAll
(
$data
)
60
{
61
$result
= [];
62
if
(!empty(
$data
[static::KEY_LANG_ALL]))
63
{
64
$useLang =
false
;
65
$langList = static::listLanguage();
66
foreach
($langList as
$lang
)
67
{
68
if
(is_array(
$data
[static::KEY_LANG_ALL][
$lang
]))
69
{
70
$useLang =
$lang
;
71
break
;
72
}
73
}
74
75
if
($useLang !==
false
)
76
{
77
$result
=
$data
[static::KEY_LANG_ALL][$useLang];
78
}
79
else
80
{
81
$item = reset(
$data
[static::KEY_LANG_ALL]);
82
if
(is_array($item))
83
{
84
$result
= $item;
85
}
86
}
87
}
88
89
return
array_merge(
$data
,
$result
);
90
}
91
100
public
static
function
fillCompatibility
(
array
$param,
array
$fieldList,
array
$defaultValues
= []) :
array
101
{
102
$result
= [];
103
104
$langList = static::listLanguage();
105
$langDefault = reset($langList);
106
107
if
(empty($param[static::KEY_LANG_ALL]))
108
{
109
foreach
($fieldList as
$key
)
110
{
111
$value = trim($param[
$key
] ??
''
);
112
if
($value !==
''
)
113
{
114
$result
[static::KEY_LANG_ALL][$langDefault][
$key
] = $value;
115
$result
[
$key
] = trim($param[
$key
]);
116
}
117
elseif
(isset(
$defaultValues
[
$key
]) &&
$defaultValues
[
$key
])
118
{
119
$result
[static::KEY_LANG_ALL][$langDefault][
$key
] =
$defaultValues
[
$key
];
120
$result
[
$key
] =
$defaultValues
[
$key
];
121
}
122
}
123
}
124
else
125
{
126
foreach
($param[static::KEY_LANG_ALL] as $langCode => $langItem)
127
{
128
foreach
($fieldList as $field)
129
{
130
$value = trim($langItem[$field] ??
''
);
131
if
($value !==
''
)
132
{
133
$result
[static::KEY_LANG_ALL][$langCode][$field] = $value;
134
}
135
elseif
(
$defaultValues
[$field])
136
{
137
$result
[static::KEY_LANG_ALL][$langDefault][$field] =
$defaultValues
[$field];
138
}
139
}
140
}
141
$result
= static::mergeFromLangAll(
$result
);
142
}
143
144
if
(empty(
$result
[static::KEY_LANG_ALL]) && !empty(
$defaultValues
))
145
{
146
$result
[static::KEY_LANG_ALL][$langDefault] =
$defaultValues
;
147
}
148
149
return
$result
;
150
}
151
}
$dbSites
$dbSites
Определения
options.php:14
Bitrix\Rest\Lang
Определения
lang.php:9
Bitrix\Rest\Lang\listLanguage
static listLanguage()
Определения
lang.php:19
Bitrix\Rest\Lang\mergeFromLangAll
static mergeFromLangAll($data)
Определения
lang.php:59
Bitrix\Rest\Lang\fillCompatibility
static fillCompatibility(array $param, array $fieldList, array $defaultValues=[])
Определения
lang.php:100
$data
$data['IS_AVAILABLE']
Определения
.description.php:13
array
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения
file_new.php:804
$result
$result
Определения
get_property_values.php:14
$defaultValues
$defaultValues
Определения
iblock_catalog_edit.php:124
$lang
if(!defined('SITE_ID')) $lang
Определения
include.php:91
Bitrix\Main
elseif
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения
prolog_main_admin.php:393
$key
if(empty($signedUserToken)) $key
Определения
quickway.php:257
$site
$site
Определения
yandex_run.php:614
bitrix
modules
rest
lib
lang.php
Создано системой
1.14.0