Пример #1
0
 public static function findServicesToSubscribe($orderBy = 'service', $minLevel = 1, $maxLevel = 5)
 {
     $common_dh = $GLOBALS['common_dh'];
     $callerModule = $GLOBALS['self'];
     $sess_id_user = $_SESSION['sess_id_user'];
     $userObj = $_SESSION['sess_userObj'];
     // filtering on levels
     // $level_ha = Multiport::get_service_max_level($sess_id_user); FIXME: it OUGHT TO be used to filter services
     // 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;
     $providers_data = array();
     foreach ($service_infoAr as $course_dataHa) {
         //var_dump($course_dataHa);
         $service_implementation_id = $course_dataHa[3];
         $provider_name = $course_dataHa[5];
         $provider_id = $course_dataHa[4];
         if (!isset($providers_data[$provider_id])) {
             $provider_dataHa = $common_dh->get_tester_info_from_id($provider_id);
             $provider_pointer = $provider_dataHa[10];
             $providers_data[$provider_id] = $provider_dataHa;
         } else {
             $provider_pointer = $providers_data[$provider_id][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) or $id_course_instanceAr == NULL) {
             // never subscribed
             $id_course_instance = 0;
         } else {
             //var_dump($id_course_instanceAr);
             $id_course_instance = $id_course_instanceAr['istanza_id'];
             /* // FIXME: we have to get the real status AND expiration date for service implementation
                *   $now = time();
                if ($data_fine < $now){
                $stato = ADA_SERVICE_SUBSCRIPTION_STATUS_COMPLETED;
                } else {
                $stato = ADA_SERVICE_SUBSCRIPTION_STATUS_UNDEFINED;
                }
                $service_infoAr[$s][9] = $stato;
                */
         }
         $service_infoAr[$s][8] = $id_course_instance;
         $s++;
     }
     $optionsAr = array('callerModule' => $callerModule, 'orderBy' => $orderBy);
     return GuestHtmlLib::displayAllServicesData($userObj, $service_infoAr, $optionsAr);
 }