1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
route.php
См. документацию.
1
<?php
2
3
namespace
Bitrix\Main\UrlPreview;
4
5
use Bitrix\Main\Application;
6
use Bitrix\Main;
7
use Bitrix\Main\ORM\Data\AddResult;
8
use Bitrix\Main\ORM\Data\DataManager;
9
use Bitrix\Main\ORM\Fields;
10
27
class
RouteTable
extends
DataManager
28
{
34
public
static
function
getTableName
()
35
{
36
return
'b_urlpreview_route'
;
37
}
38
44
public
static
function
getMap
()
45
{
46
return
array
(
47
'ID'
=>
new
Fields
\
IntegerField
(
'ID'
,
array
(
48
'primary'
=>
true
,
49
'autocomplete'
=>
true
,
50
)),
51
'ROUTE'
=>
new
Fields
\
StringField
(
'ROUTE'
,
array
(
52
'required'
=>
true
,
53
'unique'
=>
true
54
)),
55
'MODULE'
=>
new
Fields
\
StringField
(
'MODULE'
,
array
(
56
'required'
=>
true
,
57
)),
58
'CLASS'
=>
new
Fields
\
StringField
(
'CLASS'
,
array
(
59
'required'
=>
true
,
60
)),
61
'PARAMETERS'
=>
new
Fields
\
TextField
(
'PARAMETERS'
,
array
(
62
'serialized'
=>
true
,
63
)),
64
);
65
}
66
74
public
static
function
getByRoute
(
$route
)
75
{
76
$parameters =
array
(
77
'select'
=>
array
(
'*'
),
78
'filter'
=>
array
(
79
'=ROUTE'
=>
$route
,
80
)
81
);
82
83
return
static::getList($parameters)->fetch();
84
}
85
92
public
static
function
merge
(
array
$data
)
93
{
94
$result
=
new
AddResult
();
95
96
try
97
{
98
// set fields with default values
99
foreach
(static::getEntity()->getFields() as $field)
100
{
101
if
($field instanceof
Fields
\
ScalarField
&& !array_key_exists($field->getName(),
$data
))
102
{
103
$defaultValue
= $field->getDefaultValue();
104
105
if
(
$defaultValue
!==
null
)
106
{
107
$data
[$field->getName()] = $field->getDefaultValue();
108
}
109
}
110
}
111
112
static::checkFields(
$result
,
null
,
$data
);
113
114
// use save modifiers
115
foreach
(
$data
as $fieldName => $value)
116
{
117
$field = static::getEntity()->getField($fieldName);
118
$data
[$fieldName] = $field->modifyValueBeforeSave($value,
$data
);
119
}
120
121
$helper =
Application::getConnection
()->getSqlHelper();
122
$insertData =
$data
;
123
$updateData =
$data
;
124
unset($updateData[
'ROUTE'
]);
125
$merge = $helper->prepareMerge(
126
static::getTableName(),
127
array
(
"ROUTE"
),
128
$insertData,
129
$updateData
130
);
131
132
if
($merge[0] !=
""
)
133
{
134
Application::getConnection
()->query($merge[0]);
135
$id =
Application::getConnection
()->getInsertedId();
136
if
($id == 0)
137
{
138
$updatedRecord = static::getByRoute(
$data
[
'ROUTE'
]);
139
$id = $updatedRecord[
'ID'
];
140
}
141
$result
->setId($id);
142
$result
->setData(
$data
);
143
}
144
else
145
{
146
$result
->addError(
new
Main
\
Error
(
'Error constructing query'
));
147
}
148
}
149
catch
(\
Exception
$e)
150
{
151
// check result to avoid warning
152
$result
->isSuccess();
153
154
throw
$e;
155
}
156
157
return
$result
;
158
}
159
}
$defaultValue
if($_SERVER $defaultValue['REQUEST_METHOD']==="GET" &&!empty($RestoreDefaults) && $bizprocPerms==="W" &&check_bitrix_sessid())
Определения
options.php:32
Bitrix\Main\Application\getConnection
static getConnection($name="")
Определения
application.php:638
Bitrix\Main\Error
Определения
error.php:15
Bitrix\Main\ORM\Data\AddResult
Определения
addresult.php:12
Bitrix\Main\ORM\Data\DataManager
Определения
datamanager.php:35
Bitrix\Main\ORM\Fields\IntegerField
Определения
integerfield.php:20
Bitrix\Main\ORM\Fields\ScalarField
Определения
scalarfield.php:19
Bitrix\Main\ORM\Fields\StringField
Определения
stringfield.php:20
Bitrix\Main\ORM\Fields\TextField
Определения
textfield.php:20
Bitrix\Main\UrlPreview\RouteTable
Определения
route.php:28
Bitrix\Main\UrlPreview\RouteTable\getMap
static getMap()
Определения
route.php:44
Bitrix\Main\UrlPreview\RouteTable\getByRoute
static getByRoute($route)
Определения
route.php:74
Bitrix\Main\UrlPreview\RouteTable\merge
static merge(array $data)
Определения
route.php:92
Bitrix\Main\UrlPreview\RouteTable\getTableName
static getTableName()
Определения
route.php:34
$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
Bitrix\Main\DI\Exception
Определения
circulardependencyexception.php:3
Bitrix\Main\ORM\Fields
Определения
arrayfield.php:9
Bitrix\Main
$route
$route
Определения
routing_index.php:35
bitrix
modules
main
lib
urlpreview
route.php
Создано системой
1.14.0