1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
analytics.php
См. документацию.
1<?php
2
4
7
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
90 ->setType($type)
91 ->setP1("peopleCount_$membersCount")
92 ->setP2("customDays_{$ruleChanges['customDays']}")
93 ->setP3("customLength_{$ruleChanges['customLength']}")
94 ->send()
95 ;
96 }
97}
$type
Определения options.php:106
const CLIENT_STARTED
Определения analytics.php:12
sendChatCreated(Link\EventLink $eventLink, string $whoStarted)
Определения analytics.php:47
const MANAGER_STARTED
Определения analytics.php:13
getAnalyticsEvent(string $eventName)
Определения analytics.php:65
const EVENT_CALL_STARTED
Определения analytics.php:24
sendCallStarted(Link\Joint\JointLink $parentLink)
Определения analytics.php:58
const TYPE_MULTIPLE
Определения analytics.php:29
const EVENT_MEETING_PLACED
Определения analytics.php:22
const TOOL_CALENDAR
Определения analytics.php:15
const CONTEXT_CALENDAR
Определения analytics.php:18
const EVENT_CHAT_STARTED
Определения analytics.php:23
sendMeetingCreated(Link\Joint\JointLink $link)
Определения analytics.php:40
const CATEGORY_SLOTS
Определения analytics.php:16
const LINK_CREATE_METHOD_CRM_SEND
Определения analytics.php:26
sendLinkSent(Link\CrmDealLink $crmDealLink)
Определения analytics.php:31
sendAnalytics(AnalyticsEvent $analyticsEvent, ?Link\Joint\JointLink $link)
Определения analytics.php:70
const EVENT_LINK_CREATED
Определения analytics.php:21
setSection(string $section)
Определения analyticsevent.php:72
$context
Определения csv_new_setup.php:223
trait SingletonTrait
Определения singletontrait.php:6
</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