Example #1
0
 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');
 }