$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);
function get_subscription($id_user) { /* * troppo lenta.... */ // versione che cicla sulle iscrizioni ad un servizio $common_dh = $GLOBALS['common_dh']; // servizio $service_courseAr = $common_dh->get_service_implementors(); // corso foreach ($service_courseAr as $service_implementor) { $id_service = $service_implementor['id_servizio']; $id_course = $service_implementor['id_corso']; //tester $providerId = get_tester_for_service($id_service); $provider_dataHa = $common_dh->get_tester_info_from_id($id_tester); $provider_pointer = $provider_dataHa[11]; $provider_dsn = Multiport::getDSN($provider_pointer); if ($provider_dsn != null) { $provider_dh = AMA_DataHandler::instance($provider_dsn); // istanze per corso $all_instance = $provider_dh->get_course_instance_for_this_student_and_course_model($id_user, $id_course); //... } } }
* * 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'));
public static function findImplementor($implementorId) { $common_dh = $GLOBALS['common_dh']; //$provider_dataHa = $common_dh->get_tester_info_from_id($id_provider); $provider_dataHa = $common_dh->get_tester_info_from_id_course($implementorId); if (AMA_DataHandler::isError($provider_dataHa)) { // ? } else { $provider_dsn = Multiport::getDSN($provider_dataHa['puntatore']); if ($provider_dsn != null) { $provider_dh = AMA_DataHandler::instance($provider_dsn); if (AMA_DataHandler::isError($provider_dh)) { return $provider_dh; } else { $courseAr = $provider_dh->get_course($implementorId); if (AMA_DataHandler::isError($courseAr)) { // continue $courseAr = array(); $courseAr['id_course'] = $implementorId; } else { if (!isset($courseAr['id_nodo_iniziale'])) { $courseAr['id_nodo_iniziale'] = 0; } $id_start_node = $courseAr['id_nodo_iniziale']; $id_desc = $implementorId . "_" . $id_start_node; $user_level = "999"; $nodeHa = $provider_dh->get_node_info($id_desc); if (AMA_DataHandler::isError($nodeHa)) { // continue $nodeHa = array(); $nodeHa['text'] = NULL; } } } } } $serviceImplementorObj = new Service_implementor($provider_dataHa, $courseAr, $nodeHa); return $serviceImplementorObj; }
/** * adds a user whose data are coming from the login provider to the proper ADA DB * * @param array $userArr array of user data to be added * @param function $successCallback callback function accepting a ADALoggableUser parameter to be called just before returning * @param function $errorCallback callback function accepting no parameters to be called just before redirecting * * @return ADALoggableUser|null (redirects if MultiPort::addUser fails) * * @access public */ public function addADAUser($userArr, $successCallback = null, $errorCallback = null) { /** * build user object */ $userObj = new ADAUser($userArr); $userObj->setLayout(''); $userObj->setType(isset($userArr['tipo']) ? $userArr['tipo'] : AMA_TYPE_STUDENT); $userObj->setStatus(ADA_STATUS_REGISTERED); $userObj->setPassword(sha1(time())); // force unguessable password /** * save the user in the appropriate provider */ if (!MULTIPROVIDER && isset($GLOBALS['user_provider'])) { $regProvider = array($GLOBALS['user_provider']); } else { $regProvider = array(ADA_PUBLIC_TESTER); } $id_user = Multiport::addUser($userObj, $regProvider); if ($id_user < 0) { if (!is_null($errorCallback)) { call_user_func($errorCallback); } $message = translateFN('Impossibile procedere. Un utente con questi dati esiste?') . ' ' . urlencode($userObj->getEmail()); header('Location:' . HTTP_ROOT_DIR . '/browsing/registration.php?message=' . $message); exit; } else { /** * reload user object just to double check */ $retObj = MultiPort::findUserByUsername($userArr['username']); if (!is_null($successCallback)) { call_user_func($successCallback, $retObj); } return $retObj; } }
// Random password. $userObj->setPassword(sha1(time())); /** * giorgio 19/ago/2013 * * if it's not multiprovider, must register the user * in the selected tester only. * if it is multiprovider, must register the user * in the public tester only. */ if (!MULTIPROVIDER && isset($GLOBALS['user_provider'])) { $regProvider = array($GLOBALS['user_provider']); } else { $regProvider = array(ADA_PUBLIC_TESTER); } $id_user = Multiport::addUser($userObj, $regProvider); if ($id_user < 0) { $message = translateFN('Impossibile procedere. Un utente con questi dati esiste?') . ' ' . urlencode($userObj->getEmail()); header('Location:' . HTTP_ROOT_DIR . '/browsing/registration.php?message=' . $message); exit; } /** * Create a registration token for this user and send it to the user * with the confirmation request. */ $tokenObj = TokenManager::createTokenForUserRegistration($userObj); if ($tokenObj == false) { $message = translateFN('An error occurred while performing your request. Pleaser try again later.'); header('Location:' . HTTP_ROOT_DIR . "/browsing/registration.php?message={$message}"); exit; }
// $span_idUser->setAttribute('class', 'idUser'); // $span_idUser->addChild(new CText($user->getSubscriberId())); // $span_instance = CDOMElement::create('span'); $span_instance->setAttribute('class', 'id_instance'); $span_instance->addChild(new CText($instanceId)); // $span_data = CDOMElement::create('span'); // $span_data->setAttribute('class', 'date'); // $span_data->addChild(new CText($data_iscrizione)); $userArray = array(translateFN('Hidden_status') => $span_selected->getHtml(), translateFN('Id') => $user->getSubscriberId(), translateFN('Nome') => $span_label->getHtml(), translateFN('Status') => $select->getHtml(), translateFN('Id_istance') => $span_instance->getHtml(), translateFN('Data iscrizione') => $data_iscrizione, translateFN('Livello') => $livello); if (defined('MODULES_CODEMAN') && MODULES_CODEMAN) { $code = $user->getSubscriptionCode(); $userArray[translateFN('Codice iscrizione')] = $code; } if (defined('ADA_PRINT_CERTIFICATE') && ADA_PRINT_CERTIFICATE) { $UserCertificateObj = Multiport::findUser($user->getSubscriberId(), $instanceId); $certificate = $UserCertificateObj->Check_Requirements_Certificate($user->getSubscriberId()); if ($certificate) { $linkCertificate = CDOMElement::create('a', 'href:../browsing/userCertificate.php?id_user='******'&id_instance=' . $instanceId); $linkCertificate->setAttribute('class', 'linkCertificate'); $imgDoc = CDOMElement::create('img', 'src:' . HTTP_ROOT_DIR . '/layout/' . $_SESSION['sess_template_family'] . '/img/document.png'); $imgDoc->setAttribute('class', 'imgDoc tooltip'); $imgDoc->setAttribute('title', translateFN('stampa certificato')); $linkCertificate->addChild($imgDoc); } else { $linkCertificate = CDOMElement::create('a', 'href:#'); $linkCertificate->setAttribute('class', 'linkCertificate'); $imgDoc = CDOMElement::create('img', 'src:' . HTTP_ROOT_DIR . '/layout/' . $_SESSION['sess_template_family'] . '/img/document.png'); $imgDoc->setAttribute('class', 'imgDoc tooltip'); $imgDoc->setAttribute('title', translateFN('certificato non disponibile')); $linkCertificate->addChild($imgDoc);
require_once ROOT_DIR . '/include/module_init.inc.php'; require_once ROOT_DIR . '/include/Course.inc.php'; require_once ROOT_DIR . '/include/CourseInstance.inc.php'; require_once 'include/browsing_functions.inc.php'; require_once '../switcher/include/switcher_functions.inc.php'; $self = whoami(); $title = translateFN('Attestato di frequenza'); $logo = '<img src="' . HTTP_ROOT_DIR . '/layout/' . $_SESSION['sess_template_family'] . '/img/header-logo.png" />'; if (isset($_GET['id_user'])) { $id_user = $_GET['id_user']; } if (isset($_GET['id_instance'])) { $id_instance = $_GET['id_instance']; } $codice_corso = $courseObj->getCode(); $UserCertificateObj = Multiport::findUser($id_user, $id_instance); $userFullName = $UserCertificateObj->getFullName(); $gender = $UserCertificateObj->getGender(); $birthplace = $UserCertificateObj->getBirthCity(); $codFisc = $UserCertificateObj->getFiscalCode(); $province = $UserCertificateObj->getProvince(); $birthdate = $UserCertificateObj->getBirthDate(); if (strToUpper($gender) == "F") { $nato = translateFN('nata'); } else { $nato = translateFN('nato'); } if (!is_null($birthplace) && stripos($birthplace, 'NULL') === false && strlen($birthplace) > 0 && (!is_null($birthdate) && $birthdate > 0 && strlen($birthdate) > 0)) { $birthSentence = ""; } if (!is_null($codFisc) && stripos($codFisc, 'NULL') === false && strlen($codFisc) > 0) {
if ($userObj->getType() == AMA_TYPE_ADMIN) { $Services_TypeAr = $GLOBALS['dh']->get_service_type($userObj->getId()); if (!empty($Services_TypeAr) && !AMA_DB::isError($Services_TypeAr)) { foreach ($Services_TypeAr as $service) { if (isset($service['livello_servizio']) && isset($service['nome_servizio'])) { $Services_Type[$service['livello_servizio']] = translateFN($service['nome_servizio']); } } } else { if (defined('DEFAULT_SERVICE_TYPE') && defined('DEFAULT_SERVICE_TYPE_NAME')) { $Services_Type[DEFAULT_SERVICE_TYPE] = translateFN(DEFAULT_SERVICE_TYPE_NAME); } } $log_dataAr = Multiport::log_report(null, $Services_Type); } elseif ($userObj->getType() == AMA_TYPE_SWITCHER) { $log_dataAr = Multiport::log_report($userObj->getDefaultTester(), null); $Services_Type = $_SESSION['service_level']; } /* Set services level in $GLOBALS['LogReport_Array']*/ if (defined('CONFIG_LOG_REPORT') && CONFIG_LOG_REPORT && is_array($GLOBALS['LogReport_Array']) && count($GLOBALS['LogReport_Array'])) { $service_position = 0; $arrayService = array(); foreach ($GLOBALS['LogReport_Array'] as $key => $value) { if (strpos($key, 'service_level') === 0) { if ($value['show'] == true) { if (isset($Services_Type)) { foreach ($Services_Type as $key_service => $value) { $arrayService['course_' . $key_service] = array('label' => $value, 'show' => true); } } }