1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
dashboard.php
См. документацию.
1<?php
2namespace Bitrix\Report\VisualConstructor\Helper;
3
4use Bitrix\Main\Config\Option;
5use Bitrix\Main\SystemException;
6use Bitrix\Report\VisualConstructor\Entity\Dashboard as DashboardEntity;
7use Bitrix\Report\VisualConstructor\Entity\Widget as WidgetEntity;
8use Bitrix\Report\VisualConstructor\RuntimeProvider\DefaultBoardProvider;
9
15{
22 public static function getDashboardByKeyForCurrentUser($boardKey)
23 {
24 global $USER;
25 $userId = $USER->getId();
26 $dashboardForUser = DashboardEntity::loadByBoardKeyAndUserId($boardKey, $userId);
27 if (!$dashboardForUser)
28 {
30 $defaultDashboard = DashboardEntity::getDefaultBoardWithEverythingByBoardKey($boardKey);
31
32 $dashboardForUser = $defaultDashboard->getCopyForCurrentUser();
33 $dashboardForUser->setVersion('');
34 $dashboardForUser->setUserId($userId);
35 $dashboardForUser->save();
36 }
37 return $dashboardForUser;
38 }
39
47 public static function addWidgetToDashboardsWithKey($boardKey, WidgetEntity $widget)
48 {
49 $dashboards = DashboardEntity::loadByBoardKeyMultiple($boardKey);
50 $dashboardIds = array();
51 foreach ($dashboards as $dashboard)
52 {
53 $cellId = 'cell_' . randString(4);
55 'cellIds' => array($cellId)
56 ));
57 $widget->setWeight($cellId);
58 $widget->setBoardId($boardKey);
59 $row->addWidgets($widget->getCopyForCurrentUser());
60 $dashboard->addRows($row);
61 $dashboard->save();
62 $dashboardIds[] = $dashboard->getId();
63 }
64 return $dashboardIds;
65 }
66
67
77 public static function renewDefaultDashboard($boardKey)
78 {
79 $board = new DefaultBoardProvider();
80 $board->addFilter('boardKey', $boardKey);
81 $board = $board->execute()->getFirstResult();
82 if ($board)
83 {
84 if (!$board->getVersion())
85 {
86 throw new SystemException("To renew default dashboard in db state, version of dashboard should exist");
87 }
88
89 $boardFromDb = DashboardEntity::getDefaultBoardByBoardKey($boardKey);
90
91 if ($boardFromDb && $boardFromDb->getVersion() !== $board->getVersion())
92 {
93 $boardFromDb->delete();
94 $board->save();
95 }
96 elseif (!$boardFromDb)
97 {
98 $board->save();
99 }
100 }
101 }
102
103
108 public static function getBoardModeIsDemo($boardKey)
109 {
110 $boardModes = \CUserOptions::GetOption('report_dashboard', 'IS_DEMO_MODE_MARKERS', array());
111 if (isset($boardModes[$boardKey]))
112 {
113 return $boardModes[$boardKey];
114 }
115 return self::getBoardCustomDefaultModeIsDemo($boardKey);
116 }
117
118 public static function setBoardModeIsDemo($boardKey, $mode)
119 {
120 $boardModes = \CUserOptions::GetOption('report_dashboard', 'IS_DEMO_MODE_MARKERS', array());
121 $boardModes[$boardKey] = $mode;
122 \CUserOptions::SetOption('report_dashboard', 'IS_DEMO_MODE_MARKERS', $boardModes);
123 }
124
125 public static function updateBoardCustomDefaultMode($boardKey, $demo = false)
126 {
127 if (self::checkBoardCustomDefaultModeIsExist($boardKey))
128 {
129 if (self::getBoardCustomDefaultModeIsDemo($boardKey) != $demo)
130 {
131 self::setBoardCustomDefaultModeIsDemo($boardKey, $demo);
132 }
133
134 }
135 else
136 {
137 self::setBoardCustomDefaultModeIsDemo($boardKey, $demo);
138 }
139 }
140
141 private static function setBoardCustomDefaultModeIsDemo($boardKey, $demo = false)
142 {
143 $modes = Option::get('report', 'BOARD_CUSTOM_DEFAULT_MODES', serialize(array()));
144 $modes = unserialize($modes, ['allowed_classes' => false]);
145 $modes[$boardKey] = $demo ? 1 : 0;
146 Option::set('report', 'BOARD_CUSTOM_DEFAULT_MODES', serialize($modes));
147 }
148
149 private static function checkBoardCustomDefaultModeIsExist($boardKey)
150 {
151 $modes = Option::get('report', 'BOARD_CUSTOM_DEFAULT_MODES', serialize(array()));
152 $modes = unserialize($modes, ['allowed_classes' => false]);
153 return isset($modes[$boardKey]);
154 }
155
156 private static function getBoardCustomDefaultModeIsDemo($boardKey)
157 {
158 $modes = Option::get('report', 'BOARD_CUSTOM_DEFAULT_MODES', serialize(array()));
159 $modes = unserialize($modes, ['allowed_classes' => false]);
160 return !empty($modes[$boardKey]);
161 }
162
163}
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
Определения check_mail.php:18
static getBoardModeIsDemo($boardKey)
Определения dashboard.php:108
static addWidgetToDashboardsWithKey($boardKey, WidgetEntity $widget)
Определения dashboard.php:47
static renewDefaultDashboard($boardKey)
Определения dashboard.php:77
static updateBoardCustomDefaultMode($boardKey, $demo=false)
Определения dashboard.php:125
static getDashboardByKeyForCurrentUser($boardKey)
Определения dashboard.php:22
static setBoardModeIsDemo($boardKey, $mode)
Определения dashboard.php:118
static getRowDefaultEntity($params)
Определения row.php:46
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
global $USER
Определения csv_new_run.php:40
randString($pass_len=10, $pass_chars=false)
Определения tools.php:2154
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393