示例#1
0
 $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);
            //...
        }
    }
}
示例#3
0
          * 
          * 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'));
示例#4
0
 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;
     }
 }
示例#6
0
 // 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;
 }
示例#7
0
 //            $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);
示例#8
0
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) {
示例#9
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);
                    }
                }
            }