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