public static function get_structur_with_session($session_id) { $report_list = report::get_list_with_session($session_id); if (count($report_list) > 0) { $rn = new report_navigation(); $report_nav_list = $rn->get_list(); //Turn Report Navigation List into Report Navigation Structur List $rns_list = array(); for ($i = 0; $i < count($report_nav_list); $i++) { $rns_list[] = $report_nav_list[$i]->to_report_navigation_structur(); } //Create Structur for ($i = 0; $i < count($rns_list); $i++) { $rns = $rns_list[$i]; for ($j = 0; $j < count($rns_list); $j++) { if ($i != $j) { if ($rns->add_navigation($rns_list[$j])) { array_splice($rns_list, $j, 1); $j--; } } } } $rnr = new report_navigation_report(); $rnr_list = $rnr->get_list(); for ($i = 0; $i < count($rnr_list); $i++) { for ($j = 0; $j < count($report_list); $j++) { if ($report_list[$j]->id === $rnr_list[$i]->report_id) { for ($k = 0; $k < count($rns_list); $k++) { $rns_list[$k]->add_navigation(new report_navigation_structur(0, $report_list[$j]->name, $rnr_list[$i]->report_navigation_id, $report_list[$j]->id, $report_list[$j]->description)); } $j = count($report_list); } } } return $rns_list; } else { return null; } }
public static function load_structur_with_session($id, $session_id) { global $dbconnection; $object = new report(); $reportlist = $object->get_list_with_session($session_id); $found = false; for ($i = 0; $i < count($reportlist); $i++) { if ($reportlist[$i]->id * 1 === $id * 1) { $object = $reportlist[$i]; $found = true; } } if ($found === false) { return null; } $rw = new report_wrapper(); $rw->id = $object->id; $rw->name = $object->name; $rw->report_element_list = ormlib::get_list_from_instance(new report_element(), array("report_id"), array($id)); for ($i = 0; $i < count($rw->report_element_list); $i++) { $rw->report_element_field_list = array_merge($rw->report_element_field_list, ormlib::get_list_from_instance(new report_element_field(), array("report_element_id"), array($rw->report_element_list[$i]->id))); } for ($i = 0; $i < count($rw->report_element_field_list); $i++) { $rw->report_element_metadata_mapping[] = ormlib::get_from_instance(new metadata_field(), array("id"), array($rw->report_element_field_list[$i]->metadata_field_id)); } $help = ormlib::get_list_from_instance(new report_metadata_condition(), array("report_id"), array($rw->id)); for ($i = 0; $i < count($help); $i++) { $rw->report_metadata_field_condition[] = ormlib::get_from_instance(new metadata_field(), array("id"), array($help[$i]->metadata_field_id)); $table = ormlib::get_from_instance(new metadata_table(), array("id"), array($rw->report_metadata_field_condition[$i]->metadata_table_id)); $values = array(); if ($rw->report_metadata_field_condition[$i]->type * 1 === 1) { $result = $dbconnection->do_query_data_response("select " . $rw->report_metadata_field_condition[$i]->name_in_table . " from " . $table->name . " group by " . $rw->report_metadata_field_condition[$i]->name_in_table); while ($myrow = mysql_fetch_array($result)) { $values[] = $myrow[0]; } } $rw->report_values[$rw->report_metadata_field_condition[$i]->name] = $values; } return $rw; }