1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
analytics.php
См. документацию.
1<?php
2
4
14
19class Analytics extends Base
20{
22 {
23 $componentName = 'bitrix:ui.sidepanel.wrapper';
24 $params = [
25 'POPUP_COMPONENT_NAME' => 'bitrix:report.analytics.base',
26 'POPUP_COMPONENT_TEMPLATE_NAME' => '',
27 'USE_UI_TOOLBAR' => 'Y',
28 ];
29 return new Component($componentName, '', $params);
30 }
31
32 public function getBoardComponentByKeyAction($boardKey='')
33 {
34 $analyticBoard = $this->getAnalyticBoardByKey($boardKey);
35 if (!$analyticBoard)
36 {
37 $this->addError(new Error('Analytic board with this key not exist'));
38 return false;
39 }
40
41 $additionalParams = [
42 'pageTitle' => $analyticBoard->getTitle(),
43 'pageControlsParams' => $analyticBoard->getButtonsContent()
44 ];
45 return new Component(
46 $analyticBoard->getDisplayComponentName(),
47 $analyticBoard->getDisplayComponentTemplate(),
48 $analyticBoard->getDisplayComponentParams(),
49 $additionalParams
50 );
51 }
52
57 private function getAnalyticBoardByKey($boardKey)
58 {
60 $provider->addFilter('boardKey', $boardKey);
61 $board = $provider->execute()->getFirstResult();
62 return $board;
63 }
64
70 public function toggleToDefaultByBoardKeyAction($boardKey, CurrentUser $currentUser)
71 {
72 $analyticBoardProvider = new AnalyticBoardProvider();
73 $analyticBoardProvider->addFilter('boardKey', $boardKey);
74 $analyticBoard = $analyticBoardProvider->execute()->getFirstResult();
75 if (!$analyticBoard)
76 {
77 $this->addError(new Error('Analytic board with this key does not exist'));
78 return false;
79 }
80
81 $dashboardForUser = Dashboard::loadByBoardKeyAndUserId($boardKey, $currentUser->getId());
82 if ($dashboardForUser)
83 {
84 $dashboardForUser->delete();
85 }
86
87 $defaultDashboard = Dashboard::loadByBoardKeyAndUserId($boardKey, 0);
88 if($defaultDashboard)
89 {
90 $defaultDashboard->delete();
91 }
92
93 if (!empty($analyticBoard))
94 {
95 $filter = $analyticBoard->getFilter();
96 if($filter)
97 {
98 $filterId = $filter->getFilterParameters()['FILTER_ID'];
99
100 $options = new Options($filterId, $filter::getPresetsList());
101 $options->restore($filter::getPresetsList());
102 $options->save();
103 }
104 $analyticBoard->resetToDefault();;
105 }
106
107 $additionalParams = [
108 'pageTitle' => $analyticBoard->getTitle(),
109 'pageControlsParams' => $analyticBoard->getButtonsContent()
110
111 ];
112
113 return new Component(
114 $analyticBoard->getDisplayComponentName(),
115 $analyticBoard->getDisplayComponentTemplate(),
116 $analyticBoard->getDisplayComponentParams(),
117 $additionalParams
118 );
119 }
120
121 public function toggleBoardOptionAction($boardKey, CurrentUser $currentUser, string $optionName)
122 {
123 $analyticBoardProvider = new AnalyticBoardProvider();
124 $analyticBoardProvider->addFilter('boardKey', $boardKey);
125 $analyticBoard = $analyticBoardProvider->execute()->getFirstResult();
126 if (!$analyticBoard)
127 {
128 $this->addError(new Error('Analytic board with this key does not exist'));
129 return false;
130 }
131
132 $analyticBoard->toggleOption($optionName);
133
134 AnalyticBoardManager::getInstance()->clearCache();
136
137 $analyticBoard = $analyticBoardProvider->execute()->getFirstResult();
138
139 $additionalParams = [
140 'pageTitle' => $analyticBoard->getTitle(),
141 'pageControlsParams' => $analyticBoard->getButtonsContent()
142
143 ];
144
145 return new Component(
146 $analyticBoard->getDisplayComponentName(),
147 $analyticBoard->getDisplayComponentTemplate(),
148 $analyticBoard->getDisplayComponentParams(),
149 $additionalParams
150 );
151 }
152}
if(!Loader::includeModule('messageservice')) $provider
Определения callback_ednaruimhpx.php:21
Определения error.php:15
toggleBoardOptionAction($boardKey, CurrentUser $currentUser, string $optionName)
Определения analytics.php:121
getBoardComponentByKeyAction($boardKey='')
Определения analytics.php:32
toggleToDefaultByBoardKeyAction($boardKey, CurrentUser $currentUser)
Определения analytics.php:70
$options
Определения commerceml2.php:49
$componentName
Определения component_props2.php:49
$filter
Определения iblock_catalog_list.php:54
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']
Определения template.php:799
$optionName
Определения options.php:1735