/**
* 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;
}