_ci =& get_instance(); $this->_ci->load->model('dashboard/Dashboard_model', 'DashboardModel'); $this->_ci->load->model('dashboard/Dashboard_Preset_model', 'DashboardPresetModel'); $this->_ci->load->model('dashboard/Dashboard_Override_model', 'DashboardOverrideModel'); } public function generateWidgetId($dashboard_kurzbz='') { $dashboard_kurzbz = (!empty($dashboard_kurzbz)) ? $dashboard_kurzbz : self::DEFAULT_DASHBOARD_KURZBZ; $widgetid_input = time() . '_' . $dashboard_kurzbz . '_' . bin2hex(random_bytes(self::WIDGET_ID_RANDOM_BYTES)); $widgetid = md5($widgetid_input); return array( 'widgetid' => $widgetid, 'widgetid_input' => $widgetid_input ); } public function getDashboardByKurzbz($dashboard_kurzbz) { $dashboard = null; $result = $this->_ci->DashboardModel->getDashboardByKurzbz($dashboard_kurzbz); if( isSuccess($result) && ($dashboards = getData($result)) ) { $dashboard = $dashboards[0]; } return $dashboard; } public function getMergedConfig($dashboard_id, $uid) { $defaultconfig = $this->getDefaultConfig($dashboard_id, $uid); $userconfig = $this->getUserConfig($dashboard_id, $uid); $mergedconfig = array_replace_recursive($defaultconfig, $userconfig); return $mergedconfig; } public function getDefaultConfig($dashboard_id, $uid) { $res_presets = $this->_ci->DashboardPresetModel->getPresets($dashboard_id, $uid); $defaultconfig = array(); if( isSuccess($res_presets) && hasData($res_presets) ) { $presets = getData($res_presets); foreach ($presets as $presetobj) { if( null !== ($preset = json_decode($presetobj->preset, true)) ) { $defaultconfig = array_replace_recursive($defaultconfig, $preset); } } } return $defaultconfig; } public function getUserConfig($dashboard_id, $uid) { $res_userconfig = $this->_ci->DashboardOverrideModel->getOverride($dashboard_id, $uid); $userconfig = array(); if( isSuccess($res_userconfig) && hasData($res_userconfig) ) { $data = getData($res_userconfig); if( null !== ($decodedconfig = json_decode($data[0]->override, true)) ) { $userconfig = $decodedconfig; } } return $userconfig; } }