public function action_saveplaceholders() { //deleting the fragment cache...a bit ugly but works. View::delete_fragment('sidebar_front'); View::delete_fragment('footer_front'); $this->auto_render = FALSE; $this->template = View::factory('js'); DB::delete('config')->where('group_name', '=', 'placeholder')->execute(); //for each placeholder foreach ($_GET as $placeholder => $widgets) { if (!is_array($widgets)) { $widgets = array($widgets); } // save palceholder to DB $confp = new Model_Config(); $confp->where('group_name', '=', 'placeholder')->where('config_key', '=', $placeholder)->limit(1)->find(); if (!$confp->loaded()) { $confp->group_name = 'placeholder'; $confp->config_key = $placeholder; } $confp->config_value = json_encode($widgets); $confp->save(); //edit each widget change placeholder foreach ($widgets as $wname) { $w = Widget::factory($wname); if ($w !== NULL) { if ($w->loaded and $w->placeholder != $placeholder) { $w->placeholder = $placeholder; $w->save(); } } } } $this->template->content = __('Saved'); }