/** * Insert the widgets * * @param \SpoonFormElement[] $widgetPresets The widgets presets. */ private function insertWidgets($widgetPresets) { // loop through all widgets foreach ($this->widgetInstances as $widget) { if (!BackendModel::isModuleInstalled($widget['module'])) { continue; } // create instance $instance = new $widget['className']($this->getKernel()); // execute instance $instance->execute(); // create module array if no existence if (!isset($this->dashboardSequence[$widget['module']])) { $this->dashboardSequence[$widget['module']] = array(); } // create dashboard sequence $this->dashboardSequence[$widget['module']] += array($widget['widget'] => array('column' => $instance->getColumn(), 'position' => (int) $instance->getPosition(), 'hidden' => false, 'present' => false)); // loop through selected widgets foreach ($widgetPresets as $preset) { // if selected if ($preset->getChecked()) { // get the preset module name $presetModule = str_replace('widgets_', '', str_replace($widget['widget'], '', $preset->getName())); // if the preset module name matches the widget module name if ($presetModule == $widget['module']) { // remove widgets_[modulename] prefix $selected = str_replace('widgets_' . $widget['module'], '', $preset->getName()); // if right widget set visible if ($selected == $widget['widget']) { $this->dashboardSequence[$widget['module']][$widget['widget']]['present'] = true; } } } } } // build group $group['name'] = $this->frm->getField('name')->getValue(); // build setting $setting['name'] = 'dashboard_sequence'; $setting['value'] = serialize($this->dashboardSequence); // insert group and settings $group['id'] = BackendGroupsModel::insert($group, $setting); return $group; }
/** * Insert the widgets * * @param \SpoonFormElement[] $widgetPresets The widgets presets. * * @return mixed */ private function insertWidgets($widgetPresets) { // empty dashboard sequence $this->hiddenOnDashboard = array(); // loop through all widgets foreach ($this->widgetInstances as $widget) { if (!BackendModel::isModuleInstalled($widget['module'])) { continue; } foreach ($widgetPresets as $preset) { if ($preset->getAttribute('id') !== 'widgets' . $widget['module'] . $widget['widget']) { continue; } if (!$preset->getChecked()) { if (!isset($this->hiddenOnDashboard[$widget['module']])) { $this->hiddenOnDashboard[$widget['module']] = array(); } $this->hiddenOnDashboard[$widget['module']][] = $widget['widget']; } } } // build group $userGroup['name'] = $this->frm->getField('name')->getValue(); // build setting $setting['name'] = 'hidden_on_dashboard'; $setting['value'] = serialize($this->hiddenOnDashboard); // insert group $userGroup['id'] = BackendGroupsModel::insert($userGroup, $setting); return $userGroup; }