/** * Get a single control item option from database * * @param $id id of control item option to be fetched * @return control item option object */ function get_single($id) { $id = (int) $id; $sql = "SELECT p.* FROM controller_control_item_option p {$joins} WHERE p.id = " . $id; $this->db->query($sql, __LINE__, __FILE__); $this->db->next_record(); $control_item_option = new controller_control_item_option($this->unmarshal($this->db->f('id'), 'int')); $control_item_option->set_option_value($this->unmarshal($this->db->f('option_value', true), 'string')); $control_item_option->set_control_item_id($this->unmarshal($this->db->f('control_item_id'), 'int')); return $control_item_option; }
/** * Get control item objects with control item options from database as objects or as arrays * * @param $control_id control id * @param $control_group_id control group id * @param $return_type return data as objects or as arrays * @return array with control items */ function get_control_items_and_options_by_control_and_group($control_id, $control_group_id, $return_type = "return_array") { $control_id = (int) $control_id; $control_group_id = (int) $control_group_id; $results = array(); $sql = "SELECT ci.id as ci_id, ci.*, cio.id as cio_id, cio.* "; $sql .= "FROM controller_control_item ci "; $sql .= "LEFT JOIN controller_control_item_list cl ON cl.control_item_id = ci.id "; $sql .= "LEFT JOIN controller_control c ON c.id = cl.control_id "; $sql .= "LEFT JOIN controller_control_item_option cio ON ci.id = cio.control_item_id "; $sql .= "WHERE c.id={$control_id} "; $sql .= "AND ci.control_group_id={$control_group_id} "; $sql .= "ORDER BY cl.order_nr"; $this->db->query($sql, __LINE__, __FILE__); $control_item_id = 0; $control_item = null; $control_item_array = array(); while ($this->db->next_record()) { if ($this->db->f('ci_id') != $control_item_id) { if ($control_item_id) { $control_item->set_options_array($options_array); if ($return_type == "return_array") { $control_item_array[] = $control_item->toArray(); } else { $control_item_array[] = $control_item; } } $control_item = new controller_control_item($this->unmarshal($this->db->f('ci_id'), 'int')); $control_item->set_title($this->unmarshal($this->db->f('title', true), 'string')); $control_item->set_required($this->unmarshal($this->db->f('required'), 'boolean')); $control_item->set_what_to_do($this->unmarshal($this->db->f('what_to_do', true), 'string')); $control_item->set_how_to_do($this->unmarshal($this->db->f('how_to_do', true), 'string')); $control_item->set_control_group_id($this->unmarshal($this->db->f('control_group_id'), 'int')); $control_item->set_type($this->unmarshal($this->db->f('type', true), 'string')); $options_array = array(); } $control_item_option = new controller_control_item_option($this->db->f('option_value', true), $this->db->f('control_item_id')); $control_item_option->set_id($this->db->f('cio_id')); if ($return_type == "return_array") { $options_array[] = $control_item_option->toArray(); } else { $options_array[] = $control_item_option; } $control_item_id = $control_item->get_id(); } if ($control_item != null) { $control_item->set_options_array($options_array); if ($return_type == "return_array") { $control_item_array[] = $control_item->toArray(); } else { $control_item_array[] = $control_item; } return $control_item_array; } else { return null; } }
/** * Get single control item with options * * @param $id id of the control_item to return * @param $return_type return data as objects or as arrays * @return control item object */ public function get_single_with_options($id) { $id = (int) $id; $sql = "SELECT ci.id as ci_id, ci.*, cio.id as cio_id, cio.*, cg.group_name "; $sql .= "FROM controller_control_item ci "; $sql .= "LEFT JOIN controller_control_item_option as cio ON cio.control_item_id = ci.id "; $sql .= "LEFT JOIN controller_control_group as cg ON ci.control_group_id = cg.id "; $sql .= "WHERE ci.id = {$id}"; $this->db->query($sql); $counter = 0; $control_item = null; while ($this->db->next_record()) { if (!$counter) { $control_item = new controller_control_item($this->unmarshal($this->db->f('ci_id'), 'int')); $control_item->set_title($this->unmarshal($this->db->f('title', true), 'string')); $control_item->set_required($this->unmarshal($this->db->f('required', true), 'bool')); $control_item->set_what_to_do($this->unmarshal($this->db->f('what_to_do', true), 'string')); $control_item->set_how_to_do($this->unmarshal($this->db->f('how_to_do', true), 'string')); $control_item->set_control_group_id($this->unmarshal($this->db->f('control_group_id'), 'int')); $control_item->set_control_group_name($this->unmarshal($this->db->f('group_name', true), 'string')); $control_item->set_control_area_id($this->unmarshal($this->db->f('control_area_id'))); $control_item->set_type($this->unmarshal($this->db->f('type', true), 'string')); $category = execMethod('phpgwapi.categories.return_single', $this->unmarshal($this->db->f('control_area_id'), 'int')); $control_item->set_control_area_name($category[0]['name']); } if ($this->db->f('cio_id')) { $control_item_option = new controller_control_item_option(); $control_item_option->set_id($this->unmarshal($this->db->f('cio_id'), 'int')); $control_item_option->set_option_value($this->unmarshal($this->db->f('option_value', true), 'string')); $control_item_option->set_control_item_id($this->unmarshal($this->db->f('control_item_id'), 'int')); $options_array[] = $control_item_option; } $counter++; } $control_item->set_options_array($options_array); return $control_item; }