1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
tracker.php
См. документацию.
1
<?php
9
10
namespace
Bitrix\Sender\Message;
11
12
use Bitrix\Main\Mail\Tracking;
13
use Bitrix\Main\SiteTable;
14
use Bitrix\Sender\Integration;
15
16
class
Tracker
17
{
18
public
const
TYPE_READ
= 1;
19
public
const
TYPE_CLICK
= 2;
20
public
const
TYPE_UNSUB
= 3;
21
23
protected
$type
;
24
26
protected
$moduleId
;
27
29
protected
$fields
= [];
30
32
protected
$uriParameters
= [];
33
35
protected
$handlerUri
;
36
38
protected
$linkDomain
;
39
41
protected
$siteId
;
42
43
private
$siteData;
44
50
public
function
__construct
(
$type
)
51
{
52
$this->type =
$type
;
53
}
54
58
public
function
getModuleId
()
59
{
60
return
$this->moduleId
;
61
}
62
67
public
function
setModuleId
(
$moduleId
)
68
{
69
$this->moduleId =
$moduleId
;
70
return
$this;
71
}
72
76
public
function
getSiteId
()
77
{
78
return
$this->moduleId
;
79
}
80
85
public
function
setSiteId
(
$siteId
)
86
{
87
$this->siteId =
$siteId
;
88
return
$this;
89
}
90
94
public
function
getFields
()
95
{
96
return
$this->fields
;
97
}
98
103
public
function
setFields
(
$fields
)
104
{
105
$this->fields =
$fields
;
106
return
$this;
107
}
108
113
public
function
addField
(
$key
, $value)
114
{
115
$this->fields[
$key
] = $value;
116
}
117
121
public
function
getUriParameters
()
122
{
123
return
$this->uriParameters
;
124
}
125
130
public
function
setUriParameters
(
$uriParameters
)
131
{
132
$this->uriParameters =
$uriParameters
;
133
return
$this;
134
}
135
141
public
function
addUriParameter
(
$key
, $value)
142
{
143
$this->uriParameters[
$key
] = $value;
144
return
$this;
145
}
146
152
public
function
getHandlerUri
()
153
{
154
if
(!$this->handlerUri &&
Integration
\
Bitrix24
\Service::isPortal())
155
{
156
return
Integration\Bitrix24\Service::getTrackingUri
(
157
$this->type,
158
(
Integration
\
Bitrix24
\Service::isCloud() ?
null
: $this->siteId)
// $this->siteId is not used for cloud
159
);
160
}
161
162
return
$this->handlerUri
;
163
}
164
171
public
function
setHandlerUri
(
$handlerUri
)
172
{
173
$this->handlerUri =
$handlerUri
;
174
return
$this;
175
}
176
182
public
function
getLinkDomain
()
183
{
184
if
($this->linkDomain ===
null
)
185
{
186
if
(
Integration
\
Bitrix24
\Service::isCloud())
187
{
188
return
''
;
189
}
190
if
($this->siteId)
191
{
192
if
($this->siteData ===
null
)
193
{
194
$this->siteData = SiteTable::getById($this->siteId)->fetch();
195
}
196
if
($this->siteData && $this->siteData[
'SERVER_NAME'
])
197
{
198
return
$this->siteData[
'SERVER_NAME'
];
199
}
200
}
201
}
202
203
return
$this->linkDomain
;
204
}
205
212
public
function
setLinkDomain
(
$linkDomain
)
213
{
214
$this->linkDomain =
$linkDomain
;
215
return
$this;
216
}
217
223
public
function
getLink
()
224
{
225
$link =
''
;
226
227
$moduleId
= $this->
getModuleId
();
228
$fields
= $this->
getFields
();
229
if
(!
$moduleId
|| empty(
$fields
))
230
{
231
return
$link;
232
}
233
234
$uri
= $this->
getHandlerUri
();
235
switch
($this->type)
236
{
237
case
self::TYPE_READ:
238
$link = Tracking::getLinkRead(
$moduleId
,
$fields
,
$uri
);
239
break
;
240
241
case
self::TYPE_CLICK:
242
$link = Tracking::getLinkClick(
$moduleId
,
$fields
,
$uri
);
243
break
;
244
245
case
self::TYPE_UNSUB:
246
$link = Tracking::getLinkUnsub(
$moduleId
,
$fields
,
$uri
);
247
break
;
248
}
249
250
return
$link;
251
}
252
258
public
function
getArray
()
259
{
260
return
[
261
'MODULE_ID'
=> $this->
getModuleId
(),
262
'FIELDS'
=> $this->
getFields
(),
263
'URL_PAGE'
=> $this->
getHandlerUri
(),
264
'URL_PARAMS'
=> $this->
getUriParameters
(),
265
];
266
}
267
274
public
function
setArray
(
array
$data
)
275
{
276
if
(isset(
$data
[
'MODULE_ID'
]))
277
{
278
$this->
setModuleId
($data[
'MODULE_ID'
]);
279
}
280
if
(isset(
$data
[
'FIELDS'
]))
281
{
282
$this->
setFields
($data[
'FIELDS'
]);
283
}
284
if
(isset(
$data
[
'URL_PARAMS'
]))
285
{
286
$this->
setUriParameters
($data[
'URL_PARAMS'
]);
287
}
288
if
(isset(
$data
[
'URL_PAGE'
]))
289
{
290
$this->
setHandlerUri
($data[
'URL_PAGE'
]);
291
}
292
293
return
$this;
294
}
295
}
Bitrix\Sender\Integration\Bitrix24\Service\getTrackingUri
static getTrackingUri(int $type, ?string $siteId=null)
Определения
service.php:321
Bitrix\Sender\Message\Tracker
Определения
tracker.php:17
Bitrix\Sender\Message\Tracker\TYPE_READ
const TYPE_READ
Определения
tracker.php:18
Bitrix\Sender\Message\Tracker\setSiteId
setSiteId($siteId)
Определения
tracker.php:85
Bitrix\Sender\Message\Tracker\setLinkDomain
setLinkDomain($linkDomain)
Определения
tracker.php:212
Bitrix\Sender\Message\Tracker\getArray
getArray()
Определения
tracker.php:258
Bitrix\Sender\Message\Tracker\getSiteId
getSiteId()
Определения
tracker.php:76
Bitrix\Sender\Message\Tracker\TYPE_UNSUB
const TYPE_UNSUB
Определения
tracker.php:20
Bitrix\Sender\Message\Tracker\addUriParameter
addUriParameter($key, $value)
Определения
tracker.php:141
Bitrix\Sender\Message\Tracker\setModuleId
setModuleId($moduleId)
Определения
tracker.php:67
Bitrix\Sender\Message\Tracker\addField
addField($key, $value)
Определения
tracker.php:113
Bitrix\Sender\Message\Tracker\getUriParameters
getUriParameters()
Определения
tracker.php:121
Bitrix\Sender\Message\Tracker\$uriParameters
$uriParameters
Определения
tracker.php:32
Bitrix\Sender\Message\Tracker\setFields
setFields($fields)
Определения
tracker.php:103
Bitrix\Sender\Message\Tracker\TYPE_CLICK
const TYPE_CLICK
Определения
tracker.php:19
Bitrix\Sender\Message\Tracker\$type
$type
Определения
tracker.php:23
Bitrix\Sender\Message\Tracker\setArray
setArray(array $data)
Определения
tracker.php:274
Bitrix\Sender\Message\Tracker\$handlerUri
$handlerUri
Определения
tracker.php:35
Bitrix\Sender\Message\Tracker\$linkDomain
$linkDomain
Определения
tracker.php:38
Bitrix\Sender\Message\Tracker\$siteId
$siteId
Определения
tracker.php:41
Bitrix\Sender\Message\Tracker\$fields
$fields
Определения
tracker.php:29
Bitrix\Sender\Message\Tracker\getHandlerUri
getHandlerUri()
Определения
tracker.php:152
Bitrix\Sender\Message\Tracker\getModuleId
getModuleId()
Определения
tracker.php:58
Bitrix\Sender\Message\Tracker\getLink
getLink()
Определения
tracker.php:223
Bitrix\Sender\Message\Tracker\setHandlerUri
setHandlerUri($handlerUri)
Определения
tracker.php:171
Bitrix\Sender\Message\Tracker\__construct
__construct($type)
Определения
tracker.php:50
Bitrix\Sender\Message\Tracker\setUriParameters
setUriParameters($uriParameters)
Определения
tracker.php:130
Bitrix\Sender\Message\Tracker\getLinkDomain
getLinkDomain()
Определения
tracker.php:182
Bitrix\Sender\Message\Tracker\$moduleId
$moduleId
Определения
tracker.php:26
Bitrix\Sender\Message\Tracker\getFields
getFields()
Определения
tracker.php:94
$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
$uri
if(file_exists($_SERVER['DOCUMENT_ROOT'] . "/urlrewrite.php")) $uri
Определения
urlrewrite.php:61
Bitrix\Sender\Integration\Bitrix24
Bitrix\Sender\Integration
$key
if(empty($signedUserToken)) $key
Определения
quickway.php:257
bitrix
modules
sender
lib
message
tracker.php
Создано системой
1.14.0