/**
  * Get single control_item_list object
  * 
  * @param	$control_id	control id
  * @param	$control_item_id	control id
  * @return  control item list object
  */
 function get_single_2($control_id, $control_item_id)
 {
     $control_id = (int) $control_id;
     $control_item_id = (int) $control_item_id;
     $sql = "SELECT cil.* FROM controller_control_item_list cil WHERE cil.control_id = " . $control_id . " AND cil.control_item_id = " . $control_item_id;
     $this->db->query($sql, __LINE__, __FILE__);
     $result = $this->db->next_record();
     if ($result) {
         $control_item_list = new controller_control_item_list($this->unmarshal($this->db->f('id'), 'int'));
         $control_item_list->set_control_id($this->unmarshal($this->db->f('control_id'), 'int'));
         $control_item_list->set_control_item_id($this->unmarshal($this->db->f('control_item_id'), 'int'));
         $control_item_list->set_order_nr($this->unmarshal($this->db->f('order_nr'), 'int'));
         return $control_item_list;
     } else {
         return null;
     }
 }
 /**
  * Public function for saving control items 
  * 
  * @param HTTP::id	the control_id and a comma separated list of tags (1:2, control_group_id:control_item_id)
  * @return redirect to function view_control_items
  */
 public function save_control_items()
 {
     $control_id = phpgw::get_var('control_id');
     // Fetching selected control items. Tags are on the format 1:2 (group:item).
     $control_tag_ids = phpgw::get_var('control_tag_ids');
     $saved_control_items = $this->so_control_item_list->get_control_items_by_control($control_id, "return_object");
     // Deleting formerly saved control items
     foreach ($saved_control_items as $saved_control_item) {
         $exists = false;
         $saved_control_item_id = $saved_control_item->get_id();
         foreach ($control_tag_ids as $control_item_tag) {
             $control_item_id = substr($control_item_tag, strpos($control_item_tag, ":") + 1, strlen($control_item_tag));
             if ($control_item_id == $saved_control_item_id) {
                 $exists = true;
             }
         }
         if ($exists == false) {
             $exists = false;
             $status = $this->so_control_item_list->delete($control_id, $saved_control_item_id);
         }
     }
     $order_nr = 1;
     // Saving new control items
     foreach ($control_tag_ids as $control_item_tag) {
         // Fetch control_item_id from tag string
         $control_item_id = substr($control_item_tag, strpos($control_item_tag, ":") + 1, strlen($control_item_tag));
         $saved_control_list_item = $this->so_control_item_list->get_single_2($control_id, $control_item_id);
         if ($saved_control_list_item == null) {
             // Saves control item
             $control_item_list = new controller_control_item_list();
             $control_item_list->set_control_id($control_id);
             $control_item_list->set_control_item_id($control_item_id);
             $control_item_list->set_order_nr($order_nr);
             $this->so_control_item_list->add($control_item_list);
             $order_nr++;
         }
     }
     $this->redirect(array('menuaction' => 'controller.uicontrol.view_check_list', 'control_id' => $control_id));
 }
 /**
  * Get a static reference to the storage object associated with this model object
  * 
  * @return the storage object
  */
 public static function get_so()
 {
     if (self::$so == null) {
         self::$so = CreateObject('controller.socontrol_item_list');
     }
     return self::$so;
 }