function _get_services_to_subscribe($orderBy = 'service', $minLevel = 1, $maxLevel = 5) { // used by browsing/user and info // so we have to distinguish... $common_dh = $GLOBALS['common_dh']; $callerModule = $GLOBALS['self']; $sess_id_user = $_SESSION['sess_id_user']; $userObj = $_SESSION['sess_userObj']; // services // filtering on levels $level_ha = Multiport::get_service_max_level($sess_id_user); // version using COMMON if (isset($minLevel) and $minLevel < 5) { $livelloMin = $minLevel; } else { $livelloMin = 1; } if (isset($maxLevel) and $maxLevel > 1) { $livelloMax = $maxLevel; } else { $livelloMax = 5; } $clause = "s.livello <= {$livelloMax} AND s.livello >= {$livelloMin} "; // ordering if ($orderBy == 'service') { $service_infoAr = $common_dh->get_services(array('s.nome', 't.nazione', 's.livello'), $clause); } elseif ($orderBy == 'country') { $service_infoAr = $common_dh->get_services(array('t.nazione', 't.provincia', 't.nome'), $clause); } $s = 0; foreach ($service_infoAr as $course_dataHa) { $provider_name = $course_dataHa[5]; $provider_id = $course_dataHa[4]; $provider_dataHa = $common_dh->get_tester_info_from_id($provider_id); $provider_pointer = $provider_dataHa[10]; $provider_dsn = Multiport::getDSN($provider_pointer); if ($provider_dsn != null) { $provider_dataHa = $common_dh->get_tester_info_from_pointer($provider); $provider_dh = AMA_DataHandler::instance($provider_dsn); $id_course_instanceAr = $provider_dh->get_course_instance_for_this_student_and_course_model($sess_id_user, $service_implementation_id); } else { $id_course_instanceAr = NULL; } // already subscribed? if (AMA_DataHandler::isError($id_course_instanceAr)) { // never subscribed $id_course_instance = 0; } else { $id_course_instance = $id_course_instanceAr['istanza_id']; } $service_infoAr[$s][8] = $id_course_instance; $s++; } $optionsAr = array('callerModule' => $callerModule, 'orderBy' => $orderBy); return GuestHtmlLib::displayServiceData($userObj, $service_infoAr, $optionsAr); }