/** * Get array with control group objects represented as objects or arrays * * @param $control_id control id * @param $returnType representation of returned control grups, as objects or as arrays * @return a control_group_list */ function get_control_groups_by_control($control_id, $returnType = "object") { $control_id = (int) $control_id; $sql = "SELECT cg.*, cgl.order_nr "; $sql .= "FROM controller_control_group_list cgl, controller_control_group cg "; $sql .= "WHERE cgl.control_id={$control_id} "; $sql .= "AND cgl.control_group_id=cg.id "; $sql .= "ORDER BY cgl.order_nr ASC"; $this->db->query($sql); $control_group_list = array(); while ($this->db->next_record()) { $control_group = new controller_control_group($this->unmarshal($this->db->f('id'), 'int')); $control_group->set_group_name($this->unmarshal($this->db->f('group_name', true), 'string')); $control_group->set_procedure_id($this->unmarshal($this->db->f('procedure_id'), 'int')); $control_group->set_control_area_id($this->unmarshal($this->db->f('control_area_id'), 'int')); $control_group->set_building_part_id($this->unmarshal($this->db->f('building_part_id'), 'int')); $control_group->set_component_location_id($this->unmarshal($this->db->f('component_location_id'), 'int')); $component_criteria = $this->db->f('component_criteria') ? unserialize($this->db->f('component_criteria', true)) : array(); $control_group->set_component_criteria($component_criteria); if ($returnType == "array") { $control_group_list[] = $control_group->toArray(); } else { $control_group_list[] = $control_group; } } return $control_group_list; }
/** * Get an array of control groups within specified control area * * @param $control_area_id control area * @return array of control group as arrays */ function get_control_groups_by_control_area($control_area_id) { $cat_id = (int) $control_area_id; $cats = CreateObject('phpgwapi.categories', -1, 'controller', '.control'); $cat_path = $cats->get_path($cat_id); foreach ($cat_path as $_category) { $cat_filter[] = $_category['id']; } $filter_control_area = "control_area_id IN (" . implode(',', $cat_filter) . ')'; $sql = "SELECT * FROM controller_control_group WHERE {$filter_control_area}"; $this->db->query($sql); $controls_array = array(); while ($this->db->next_record()) { $control_group = new controller_control_group((int) $this->db->f('id')); $control_group->set_group_name($this->unmarshal($this->db->f('group_name', true), 'string')); $control_group->set_procedure_id($this->unmarshal($this->db->f('procedure_id'), 'int')); $control_group->set_procedure_name($this->unmarshal($this->db->f('procedure_title', true), 'string')); $control_group->set_control_area_id($this->unmarshal($this->db->f('control_area_id'), 'int')); $category = execMethod('phpgwapi.categories.return_single', $this->unmarshal($this->db->f('control_area_id', 'int'))); $control_group->set_control_area_name($category[0]['name']); $control_group->set_building_part_id($this->unmarshal($this->db->f('building_part_id'), 'string')); $control_group->set_building_part_descr($this->unmarshal($this->db->f('building_part_descr', true), 'string')); $control_group->set_component_location_id($this->unmarshal($this->db->f('component_location_id'), 'int')); $control_groups_array[] = $control_group->toArray(); } if (count($control_groups_array) > 0) { return $control_groups_array; } else { return null; } }