$serviceObj = Service::findServiceFromImplementor($id_course); $serviceAr = $serviceObj->get_service_info(); $service_name = $serviceAr[0]; // get service from course $serviceinfoAr = $common_dh->get_service_info_from_course($id_course); if (AMA_DataHandler::isError($serviceinfoAr)) { $message = urlencode(translateFN('Impossibile richiedere il servizio')); $errObj = new ADA_Error($serviceinfoAr, $message, NULL, NULL, NULL, $error_page . '?message=' . $message); exit; } $start_date1 = 0; $start_date2 = AMA_DataHandler::date_to_ts("now"); $days = $serviceinfoAr[4]; $istanza_ha = array('data_inizio' => $start_date1, 'durata' => $days, 'data_inizio_previsto' => $start_date2, 'id_layout' => NULL); // add user to tester DB $id_tester_user = Multiport::setUser($userObj, $testersAr, $update_user_data = FALSE); if ($id_tester_user === FALSE) { $message = urlencode(translateFN("Error while assigning user to provider.")); // header('Location:'.$userObj->getHomepage($message)); // exit(); } // add an instance to tester db $res_inst_add = $tester_dh->course_instance_add($id_course, $istanza_ha); if (!AMA_DataHandler::isError($res_inst_add) or $res_inst_add->code == AMA_ERR_UNIQUE_KEY) { // we add an instance OR there already was one with same data // get an instance $clause = "id_corso = {$id_course} AND data_inizio_previsto = {$start_date2} AND durata = {$days}"; $course_instanceAr = $tester_dh->course_instance_find_list(NULL, $clause); $id_instance = $course_instanceAr[0][0]; // presubscribe user to the instance $res_presub = $tester_dh->course_instance_student_presubscribe_add($id_instance, $id_user);
* * If the switcher is trying to subscribe a tutor, do it only * if the course instance belongs to a service of type * ADA_SERVICE_TUTORCOMMUNITY */ $canSubscribeUser = $courseInstanceObj instanceof Course_instance && $courseInstanceObj->isFull() && $courseInstanceObj->getServiceLevel() == ADA_SERVICE_TUTORCOMMUNITY; } else { $canSubscribeUser = false; } } if ($canSubscribeUser) { $courseProviderAr = $common_dh->get_tester_info_from_id_course($courseObj->getId()); if (!AMA_DB::isError($courseProviderAr) && is_array($courseProviderAr) && isset($courseProviderAr['puntatore'])) { if (!in_array($courseProviderAr['puntatore'], $subscriberObj->getTesters())) { // subscribe user to course provider $canSubscribeUser = Multiport::setUser($subscriberObj, array($courseProviderAr['puntatore'])); if (!$canSubscribeUser) { $data = new CText(translateFN('Problemi nell\'iscrizione utente al provider del corso.') . ' ' . translateFN('Utente non iscritto')); } } if ($canSubscribeUser) { $subscriptionDate = 0; $s = new Subscription($subscriberObj->getId(), $courseInstanceId, $subscriptionDate, $startStudentLevel); $s->setSubscriptionStatus(ADA_STATUS_SUBSCRIBED); Subscription::addSubscription($s); $data = new CText(translateFN('Utente iscritto')); } else { $data = new CText(translateFN('Problemi') . ' ' . translateFN('Utente non iscritto')); } } else { $data = new CText(translateFN('Problemi nel recuperare il provider del corso.') . ' ' . translateFN('Utente non iscritto'));