1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
userindex.php
См. документацию.
1<?php
2namespace Bitrix\Main;
3
4use Bitrix\Main,
5 Bitrix\Main\Localization\Loc;
6
7Loc::loadMessages(__FILE__);
8
33
34class UserIndexTable extends Main\Entity\DataManager
35{
41 public static function getTableName()
42 {
43 return 'b_user_index';
44 }
45
51
52 public static function getMap()
53 {
54 return array(
55 'USER_ID' => array(
56 'data_type' => 'integer',
57 'primary' => true,
58 ),
59 'SEARCH_USER_CONTENT' => array(
60 'data_type' => 'text',
61 ),
62 'SEARCH_ADMIN_CONTENT' => array(
63 'data_type' => 'text',
64 ),
65 'SEARCH_DEPARTMENT_CONTENT' => array(
66 'data_type' => 'text',
67 ),
68 'NAME' => array(
69 'data_type' => 'string'
70 ),
71 'SECOND_NAME' => array(
72 'data_type' => 'string'
73 ),
74 'LAST_NAME' => array(
75 'data_type' => 'string'
76 ),
77 'WORK_POSITION' => array(
78 'data_type' => 'string'
79 ),
80 'UF_DEPARTMENT_NAME' => array(
81 'data_type' => 'string'
82 ),
83 );
84 }
85
86 protected static function getMergeFields()
87 {
88 return array('USER_ID');
89 }
90
91 public static function merge(array $data)
92 {
93 global $DB;
94
95 $result = new Entity\AddResult();
96
97 $helper = Application::getConnection()->getSqlHelper();
98 $insertData = $data;
99 $updateData = $data;
100 $mergeFields = static::getMergeFields();
101
102 foreach ($mergeFields as $field)
103 {
104 unset($updateData[$field]);
105 }
106
107 if (isset($updateData['SEARCH_USER_CONTENT']))
108 {
109 $value = $DB->forSql($updateData['SEARCH_USER_CONTENT']);
110 $encryptedValue = sha1($updateData['SEARCH_USER_CONTENT']);
111 $updateData['SEARCH_USER_CONTENT'] = new \Bitrix\Main\DB\SqlExpression("case when " . $helper->getSha1Function(static::getTableName().".SEARCH_USER_CONTENT") . " = '{$encryptedValue}' then ".static::getTableName().".SEARCH_USER_CONTENT else '{$value}' end");
112 }
113
114 if (isset($updateData['SEARCH_DEPARTMENT_CONTENT']))
115 {
116 $value = $DB->forSql($updateData['SEARCH_DEPARTMENT_CONTENT']);
117 $encryptedValue = sha1($updateData['SEARCH_DEPARTMENT_CONTENT']);
118 $updateData['SEARCH_DEPARTMENT_CONTENT'] = new \Bitrix\Main\DB\SqlExpression("case when " . $helper->getSha1Function(static::getTableName().".SEARCH_DEPARTMENT_CONTENT") ." = '{$encryptedValue}' then ".static::getTableName().".SEARCH_DEPARTMENT_CONTENT else '{$value}' end");
119 }
120
121 if (isset($updateData['SEARCH_ADMIN_CONTENT']))
122 {
123 $value = $DB->forSql($updateData['SEARCH_ADMIN_CONTENT']);
124 $encryptedValue = sha1($updateData['SEARCH_ADMIN_CONTENT']);
125 $updateData['SEARCH_ADMIN_CONTENT'] = new \Bitrix\Main\DB\SqlExpression("case when " . $helper->getSha1Function(static::getTableName().".SEARCH_ADMIN_CONTENT") . " = '{$encryptedValue}' then ".static::getTableName().".SEARCH_ADMIN_CONTENT else '{$value}' end");
126 }
127
128 $merge = $helper->prepareMerge(
129 static::getTableName(),
130 static::getMergeFields(),
131 $insertData,
132 $updateData
133 );
134
135 if ($merge[0] != "")
136 {
137 Application::getConnection()->query($merge[0]);
138 $id = Application::getConnection()->getInsertedId();
139 $result->setId($id);
140 $result->setData($data);
141 }
142 else
143 {
144 $result->addError(new Error('Error constructing query'));
145 }
146
147 return $result;
148 }
149}
static getConnection($name="")
Определения application.php:638
Определения error.php:15
static getMap()
Определения userindex.php:52
static getMergeFields()
Определения userindex.php:86
static merge(array $data)
Определения userindex.php:91
static getTableName()
Определения userindex.php:41
$data['IS_AVAILABLE']
Определения .description.php:13
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$result
Определения get_property_values.php:14
global $DB
Определения cron_frame.php:29