1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
projectanalytics.php
См. документацию.
1<?php
2
3declare(strict_types=1);
4
5namespace Bitrix\Socialnetwork\Helper\Analytics;
6
7use Bitrix\Main\Analytics\AnalyticsEvent;
8use Bitrix\Socialnetwork\Helper\Feature;
9use Bitrix\Tasks\Util\Restriction\Bitrix24Restriction\Limit\ProjectLimit;
10use Bitrix\Tasks\Util\Restriction\Bitrix24Restriction\Limit\ScrumLimit;
11
13{
14 public const TOOL_TASKS = 'tasks';
15 public const CATEGORY_SCRUM = 'scrum';
16 public const CATEGORY_PROJECT = 'project';
17 public const EVENT_PROJECT_VIEW = 'projects_view';
18 public const EVENT_SCRUM_VIEW = 'scrum_view';
19 public const EVENT_SCRUM_CREATE_START = 'scrum_create_start';
20 public const EVENT_SCRUM_CREATE_FINISH = 'scrum_create_finish';
21 public const EVENT_PROJECT_CREATE_START = 'project_create_start';
22 public const EVENT_PROJECT_CREATE_FINISH = 'project_create_finish';
23 public const SECTION_SCRUM = 'scrum';
24 public const SECTION_PROJECT = 'project';
25 public const SUBSECTION_PROJECT_GRID = 'project_grid';
26 public const SUBSECTION_SCRUM_GRID = 'scrum_grid';
27 public const ELEMENT_SECTION_BUTTON = 'section_button';
28 public const ELEMENT_CREATE_BUTTON = 'create_button';
29
31 string $eventName = self::EVENT_PROJECT_CREATE_START,
32 string $category = self::CATEGORY_PROJECT,
33 string $section = self::SECTION_PROJECT,
34 string $subSection = self::SUBSECTION_PROJECT_GRID,
35 string $element = self::ELEMENT_CREATE_BUTTON,
36 string $tool = self::TOOL_TASKS,
37 array $params = [],
38 ): void
39 {
41 $eventName,
42 $tool,
43 $category,
44 );
45
46 $defaultParams = [ 'p1' => $this->getTrialParamByCategory($category) ];
47 $params = array_merge($params, $defaultParams);
48
49 $this->sendAnalytics(
50 analyticsEvent: $event,
51 section: $section,
52 element: $element,
53 subSection: $subSection,
54 params: $params,
55 );
56 }
57
58 public function onProjectCreated(
59 string $privacyType,
60 string $eventName = self::EVENT_PROJECT_CREATE_FINISH,
61 string $category = self::CATEGORY_PROJECT,
62 string $section = self::SECTION_PROJECT,
63 string $subSection = self::SUBSECTION_PROJECT_GRID,
64 string $element = self::ELEMENT_CREATE_BUTTON,
65 string $tool = self::TOOL_TASKS,
66 array $params = [],
67 ): void
68 {
70 $eventName,
71 $tool,
72 $category,
73 );
74
75 $defaultParams = [ 'p1' => 'privacyType_' . $privacyType ];
76 $params = array_merge($params, $defaultParams);
77
78 $this->sendAnalytics(
79 analyticsEvent: $event,
80 section: $section,
81 element: $element,
82 subSection: $subSection,
83 params: $params,
84 );
85 }
86
87 public function onProjectListOpened(
88 string $eventName = self::EVENT_PROJECT_VIEW,
89 string $category = self::CATEGORY_PROJECT,
90 string $section = self::SECTION_PROJECT,
91 string $subSection = self::SUBSECTION_PROJECT_GRID,
92 string $element = self::ELEMENT_SECTION_BUTTON,
93 string $tool = self::TOOL_TASKS,
94 array $params = [],
95 ): void
96 {
98 $eventName,
99 $tool,
100 $category,
101 );
102
103 $defaultParams = [ 'p1' => $this->getTrialParamByCategory($category) ];
104 $params = array_merge($params, $defaultParams);
105
106 $this->sendAnalytics(
107 analyticsEvent: $event,
108 section: $section,
109 element: $element,
110 subSection: $subSection,
111 params: $params,
112 );
113 }
114
115 private function getTrialParamByCategory(string $category): string
116 {
117 $isTrialEnabled = match ($category) {
120 default => false,
121 };
122
123 return 'isDemo_' . ($isTrialEnabled ? 'Y' : 'N');
124 }
125}
sendAnalytics(AnalyticsEvent $analyticsEvent, ?string $type=null, ?string $section=null, ?string $element=null, ?string $subSection=null, bool $status=true, array $params=[],)
Определения analytics.php:26
onProjectCreateFormOpened(string $eventName=self::EVENT_PROJECT_CREATE_START, string $category=self::CATEGORY_PROJECT, string $section=self::SECTION_PROJECT, string $subSection=self::SUBSECTION_PROJECT_GRID, string $element=self::ELEMENT_CREATE_BUTTON, string $tool=self::TOOL_TASKS, array $params=[],)
Определения projectanalytics.php:30
onProjectListOpened(string $eventName=self::EVENT_PROJECT_VIEW, string $category=self::CATEGORY_PROJECT, string $section=self::SECTION_PROJECT, string $subSection=self::SUBSECTION_PROJECT_GRID, string $element=self::ELEMENT_SECTION_BUTTON, string $tool=self::TOOL_TASKS, array $params=[],)
Определения projectanalytics.php:87
onProjectCreated(string $privacyType, string $eventName=self::EVENT_PROJECT_CREATE_FINISH, string $category=self::CATEGORY_PROJECT, string $section=self::SECTION_PROJECT, string $subSection=self::SUBSECTION_PROJECT_GRID, string $element=self::ELEMENT_CREATE_BUTTON, string $tool=self::TOOL_TASKS, array $params=[],)
Определения projectanalytics.php:58
static isFeatureEnabledByTrial(string $featureName)
Определения feature.php:49
const PROJECTS_GROUPS
Определения feature.php:14
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$event
Определения prolog_after.php:141
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']
Определения template.php:799