1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
userlink.php
См. документацию.
1
<?
2
namespace
Bitrix\Socialservices;
3
4
use \Bitrix\Main\Entity\DataManager;
5
use \Bitrix\Socialservices\UserTable as SocservUserTable;
6
23
class
UserLinkTable
extends
DataManager
24
{
25
public
static
function
getFilePath
()
26
{
27
return
__FILE__;
28
}
29
30
public
static
function
getTableName
()
31
{
32
return
'b_socialservices_user_link'
;
33
}
34
35
public
static
function
getMap
()
36
{
37
$fieldsMap =
array
(
38
'ID'
=>
array
(
39
'data_type'
=>
'integer'
,
40
'primary'
=>
true
,
41
'autocomplete'
=>
true
,
42
),
43
'USER_ID'
=>
array
(
44
'data_type'
=>
'integer'
,
45
'required'
=>
true
,
46
),
47
'SOCSERV_USER_ID'
=>
array
(
48
'data_type'
=>
'integer'
,
49
'required'
=>
true
,
50
),
51
'LINK_USER_ID'
=>
array
(
52
'data_type'
=>
'integer'
,
53
),
54
'LINK_UID'
=>
array
(
55
'data_type'
=>
'string'
,
56
'required'
=>
true
,
57
),
58
'LINK_NAME'
=>
array
(
59
'data_type'
=>
'string'
,
60
),
61
'LINK_LAST_NAME'
=>
array
(
62
'data_type'
=>
'string'
,
63
),
64
'LINK_PICTURE'
=>
array
(
65
'data_type'
=>
'string'
,
66
),
67
'USER'
=>
array
(
68
'data_type'
=>
'Bitrix\Main\UserTable'
,
69
'reference'
=>
array
(
'=this.USER_ID'
=>
'ref.ID'
),
70
),
71
'SOCSERV_USER'
=>
array
(
72
'data_type'
=>
'Bitrix\Socialservices\UserTable'
,
73
'reference'
=>
array
(
'=this.SOCSERV_USER_ID'
=>
'ref.ID'
),
74
),
75
'LINK_USER'
=>
array
(
76
'data_type'
=>
'Bitrix\Main\UserTable'
,
77
'reference'
=>
array
(
'=this.LINK_USER_ID'
=>
'ref.ID'
),
78
),
79
);
80
81
return
$fieldsMap;
82
}
83
84
public
static
function
deleteBySocserv
(
$userId
, $socservProfileId)
85
{
86
$connection
=
\Bitrix\Main\Application::getConnection
();
87
$query
=
$connection
->query(
"
88
DELETE
89
FROM "
.self::getTableName().
"
90
WHERE USER_ID='"
.intval(
$userId
).
"' AND SOCSERV_USER_ID='"
.intval($socservProfileId).
"'
91
"
);
92
}
93
94
public
static
function
compareUserLinks
(
$userId
, $socservUserId, $links)
95
{
96
$dbRes
= static::getList(
array
(
97
'filter'
=>
array
(
98
//'USER_ID' => $userId, // link USER_ID doesn't update with socserv_user
99
'=SOCSERV_USER_ID'
=> $socservUserId,
100
),
101
'select'
=>
array
(
'ID'
,
'LINK_UID'
)
102
));
103
104
$currentList =
array
();
105
while
($linkInfo =
$dbRes
->fetch())
106
{
107
$currentList[$linkInfo[
'LINK_UID'
]] = $linkInfo[
'ID'
];
108
}
109
110
foreach
($links as
$key
=> $link)
111
{
112
if
(array_key_exists($link[
'uid'
], $currentList))
113
{
114
unset($currentList[$link[
'uid'
]]);
115
unset($links[
$key
]);
116
}
117
}
118
119
foreach
($currentList as $linkId)
120
{
121
static::delete($linkId);
122
}
123
124
foreach
($links as $link)
125
{
126
static::add(
array
(
127
'USER_ID'
=>
$userId
,
128
'SOCSERV_USER_ID'
=> $socservUserId,
129
'LINK_USER_ID'
=>
null
,
// !!!!!!
130
'LINK_UID'
=> $link[
'uid'
],
131
'LINK_NAME'
=> $link[
'first_name'
],
132
'LINK_LAST_NAME'
=> $link[
'last_name'
],
133
'LINK_PICTURE'
=> $link[
'picture'
],
134
));
135
}
136
}
137
138
public
static
function
checkUserLinks
($socservUserId)
139
{
140
$dbRes
= UserTable::getByPrimary($socservUserId);
141
$socservUserInfo =
$dbRes
->fetch();
142
if
($socservUserInfo)
143
{
144
$connection
=
\Bitrix\Main\Application::getConnection
();
145
$sqlHelper =
$connection
->getSqlHelper();
146
147
$sql =
"
148
SELECT sul.ID, su_link.USER_ID
149
FROM "
.static::getTableName().
" sul
150
LEFT JOIN "
.
SocservUserTable::getTableName
().
" su_link ON sul.LINK_UID=su_link.XML_ID
151
WHERE (1=1)
152
AND sul.SOCSERV_USER_ID='"
.intval($socservUserInfo[
'ID'
]).
"'
153
AND su_link.EXTERNAL_AUTH_ID='"
.$sqlHelper->forSql($socservUserInfo[
'EXTERNAL_AUTH_ID'
]).
"'
154
AND sul.LINK_USER_ID IS NULL
155
"
;
156
157
return
$connection
->query($sql);
158
}
159
else
160
{
161
return
false
;
162
}
163
}
164
}
$connection
$connection
Определения
actionsdefinitions.php:38
$userId
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
Определения
check_mail.php:18
Bitrix\Main\Application\getConnection
static getConnection($name="")
Определения
application.php:638
Bitrix\Main\ORM\Data\DataManager
Определения
datamanager.php:35
Bitrix\Socialservices\UserLinkTable
Определения
userlink.php:24
Bitrix\Socialservices\UserLinkTable\getMap
static getMap()
Определения
userlink.php:35
Bitrix\Socialservices\UserLinkTable\getFilePath
static getFilePath()
Определения
userlink.php:25
Bitrix\Socialservices\UserLinkTable\checkUserLinks
static checkUserLinks($socservUserId)
Определения
userlink.php:138
Bitrix\Socialservices\UserLinkTable\deleteBySocserv
static deleteBySocserv($userId, $socservProfileId)
Определения
userlink.php:84
Bitrix\Socialservices\UserLinkTable\compareUserLinks
static compareUserLinks($userId, $socservUserId, $links)
Определения
userlink.php:94
Bitrix\Socialservices\UserLinkTable\getTableName
static getTableName()
Определения
userlink.php:30
Bitrix\Socialservices\UserTable\getTableName
static getTableName()
Определения
usertable.php:40
array
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения
file_new.php:804
$query
$query
Определения
get_search.php:11
$key
if(empty($signedUserToken)) $key
Определения
quickway.php:257
$dbRes
$dbRes
Определения
yandex_detail.php:168
bitrix
modules
socialservices
lib
userlink.php
Создано системой
1.14.0