1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
analytics.php
См. документацию.
1
<?php
2
3
namespace
Bitrix\Calendar\Sharing
;
4
5
use
Bitrix\Calendar\Core\Base\SingletonTrait
;
6
use
Bitrix\Main\Analytics\AnalyticsEvent
;
7
8
class
Analytics
9
{
10
use SingletonTrait;
11
12
public
const
CLIENT_STARTED
=
'multiple'
;
13
public
const
MANAGER_STARTED
=
'manager_starting'
;
14
15
protected
const
TOOL_CALENDAR
=
'calendar'
;
16
protected
const
CATEGORY_SLOTS
=
'slots'
;
17
18
protected
const
CONTEXT_CALENDAR
=
'calendar'
;
19
protected
const
CONTEXT_CRM
=
'crm'
;
20
21
protected
const
EVENT_LINK_CREATED
=
'link_created'
;
22
protected
const
EVENT_MEETING_PLACED
=
'meeting_placed'
;
23
protected
const
EVENT_CHAT_STARTED
=
'chat_started'
;
24
protected
const
EVENT_CALL_STARTED
=
'call'
;
25
26
protected
const
LINK_CREATE_METHOD_CRM_SEND
=
'crm_send'
;
27
28
protected
const
TYPE_SOLO
=
'solo'
;
29
protected
const
TYPE_MULTIPLE
=
'multiple'
;
30
31
public
function
sendLinkSent
(
Link
\CrmDealLink $crmDealLink): void
32
{
33
$analyticsEvent = $this->
getAnalyticsEvent
(self::EVENT_LINK_CREATED)
34
->setElement(self::LINK_CREATE_METHOD_CRM_SEND)
35
;
36
37
$this->
sendAnalytics
($analyticsEvent, $crmDealLink);
38
}
39
40
public
function
sendMeetingCreated
(
Link
\Joint\JointLink $link): void
41
{
42
$analyticsEvent = $this->
getAnalyticsEvent
(self::EVENT_MEETING_PLACED);
43
44
$this->
sendAnalytics
($analyticsEvent, $link);
45
}
46
47
public
function
sendChatCreated
(
Link
\
EventLink
$eventLink,
string
$whoStarted): void
48
{
49
$analyticsEvent = $this->
getAnalyticsEvent
(self::EVENT_CHAT_STARTED)
50
->setElement($whoStarted)
51
;
52
53
$parentLink = (
new
Link\Factory
())->getLinkByHash($eventLink->getParentLinkHash());
54
55
$this->
sendAnalytics
($analyticsEvent, $parentLink);
56
}
57
58
public
function
sendCallStarted
(
Link
\Joint\JointLink $parentLink): void
59
{
60
$analyticsEvent = $this->
getAnalyticsEvent
(self::EVENT_CALL_STARTED);
61
62
$this->
sendAnalytics
($analyticsEvent, $parentLink);
63
}
64
65
protected
function
getAnalyticsEvent
(
string
$eventName):
AnalyticsEvent
66
{
67
return
(
new
AnalyticsEvent
($eventName, self::TOOL_CALENDAR, self::CATEGORY_SLOTS));
68
}
69
70
protected
function
sendAnalytics
(
AnalyticsEvent
$analyticsEvent, ?
Link
\Joint\JointLink $link): void
71
{
72
$isJoint =
false
;
73
$members = [];
74
$rule =
null
;
75
76
if
(!is_null($link))
77
{
78
$members = $link->getMembers();
79
$rule = $link->getSharingRule();
80
$isJoint = $link->isJoint();
81
}
82
83
$context
= $link instanceof
Link\CrmDealLink
? self::CONTEXT_CRM : self::CONTEXT_CALENDAR;
84
$type
= $isJoint ? self::TYPE_MULTIPLE : self::TYPE_SOLO;
85
$membersCount =
count
($members) + 1;
86
$ruleChanges = (
new
Link\Rule\Mapper
())->getChanges($rule);
87
88
$analyticsEvent
89
->
setSection
(
$context
)
90
->setType(
$type
)
91
->setP1(
"peopleCount_$membersCount"
)
92
->setP2(
"customDays_{$ruleChanges['customDays']}"
)
93
->setP3(
"customLength_{$ruleChanges['customLength']}"
)
94
->send()
95
;
96
}
97
}
$type
$type
Определения
options.php:106
Bitrix\Calendar\Core\Mappers\Factory
Определения
factory.php:6
Bitrix\Calendar\Core\Mappers\Mapper
Определения
mapper.php:12
Bitrix\Calendar\Sharing\Analytics\CONTEXT_CRM
const CONTEXT_CRM
Определения
analytics.php:19
Bitrix\Calendar\Sharing\Analytics\CLIENT_STARTED
const CLIENT_STARTED
Определения
analytics.php:12
Bitrix\Calendar\Sharing\Analytics\sendChatCreated
sendChatCreated(Link\EventLink $eventLink, string $whoStarted)
Определения
analytics.php:47
Bitrix\Calendar\Sharing\Analytics\MANAGER_STARTED
const MANAGER_STARTED
Определения
analytics.php:13
Bitrix\Calendar\Sharing\Analytics\getAnalyticsEvent
getAnalyticsEvent(string $eventName)
Определения
analytics.php:65
Bitrix\Calendar\Sharing\Analytics\EVENT_CALL_STARTED
const EVENT_CALL_STARTED
Определения
analytics.php:24
Bitrix\Calendar\Sharing\Analytics\sendCallStarted
sendCallStarted(Link\Joint\JointLink $parentLink)
Определения
analytics.php:58
Bitrix\Calendar\Sharing\Analytics\TYPE_MULTIPLE
const TYPE_MULTIPLE
Определения
analytics.php:29
Bitrix\Calendar\Sharing\Analytics\TYPE_SOLO
const TYPE_SOLO
Определения
analytics.php:28
Bitrix\Calendar\Sharing\Analytics\EVENT_MEETING_PLACED
const EVENT_MEETING_PLACED
Определения
analytics.php:22
Bitrix\Calendar\Sharing\Analytics\TOOL_CALENDAR
const TOOL_CALENDAR
Определения
analytics.php:15
Bitrix\Calendar\Sharing\Analytics\CONTEXT_CALENDAR
const CONTEXT_CALENDAR
Определения
analytics.php:18
Bitrix\Calendar\Sharing\Analytics\EVENT_CHAT_STARTED
const EVENT_CHAT_STARTED
Определения
analytics.php:23
Bitrix\Calendar\Sharing\Analytics\sendMeetingCreated
sendMeetingCreated(Link\Joint\JointLink $link)
Определения
analytics.php:40
Bitrix\Calendar\Sharing\Analytics\CATEGORY_SLOTS
const CATEGORY_SLOTS
Определения
analytics.php:16
Bitrix\Calendar\Sharing\Analytics\LINK_CREATE_METHOD_CRM_SEND
const LINK_CREATE_METHOD_CRM_SEND
Определения
analytics.php:26
Bitrix\Calendar\Sharing\Analytics\sendLinkSent
sendLinkSent(Link\CrmDealLink $crmDealLink)
Определения
analytics.php:31
Bitrix\Calendar\Sharing\Analytics\sendAnalytics
sendAnalytics(AnalyticsEvent $analyticsEvent, ?Link\Joint\JointLink $link)
Определения
analytics.php:70
Bitrix\Calendar\Sharing\Analytics\EVENT_LINK_CREATED
const EVENT_LINK_CREATED
Определения
analytics.php:21
Bitrix\Calendar\Sharing\Link\CrmDealLink
Определения
crmdeallink.php:8
Bitrix\Calendar\Sharing\Link\EventLink
Определения
eventlink.php:5
Bitrix\Main\Analytics\AnalyticsEvent
Определения
analyticsevent.php:16
Bitrix\Main\Analytics\AnalyticsEvent\setSection
setSection(string $section)
Определения
analyticsevent.php:72
$context
$context
Определения
csv_new_setup.php:223
Bitrix\Calendar\Core\Base\SingletonTrait
trait SingletonTrait
Определения
singletontrait.php:6
Bitrix\Calendar\Sharing\Link
Определения
crmdeallink.php:3
Bitrix\Calendar\Sharing
Определения
analytics.php:3
Bitrix\Main\Analytics
Определения
analyticsevent.php:5
count
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"
Определения
waybill.php:936
bitrix
modules
calendar
lib
sharing
analytics.php
Создано системой
1.14.0