コード例 #1
0
 /**
  * method that checks if the contidion is satisfied
  * for the passed id_user in the passed id_course_instance
  *
  * @param int $id_course_instance
  * @param int $id_user
  * @return boolean true if condition is satisfied
  * @access public
  */
 private function isSatisfied($id_course_instance = null, $id_student = null)
 {
     $user = MultiPort::findUser($id_student, $id_course_instance);
     if ($user instanceof ADAUser && isset($GLOBALS['dh'])) {
         $level = $user->get_student_level($id_student, $id_course_instance);
         if (!AMA_DB::isError($level) && is_numeric($level)) {
             if (intval($this->_param) === 0) {
                 $course_id = $GLOBALS['dh']->get_course_id_for_course_instance($id_course_instance);
                 if (!AMA_DB::isError($course_id) && is_numeric($course_id)) {
                     $max_level = $GLOBALS['dh']->get_course_max_level($course_id);
                     if (!AMA_DB::isError($max_level) && is_numeric($max_level)) {
                         return intval($level) > intval($max_level);
                     }
                 }
             } else {
                 if (is_numeric($this->_param)) {
                     return intval($level) > intval($this->_param);
                 }
             }
         }
     }
     return false;
 }
コード例 #2
0
ファイル: view_user.php プロジェクト: eguicciardi/ada
$allowedUsersAr = array(AMA_TYPE_SWITCHER);
/**
 * Performs basic controls before entering this module
 */
$neededObjAr = array(AMA_TYPE_SWITCHER => array('layout'));
require_once ROOT_DIR . '/include/module_init.inc.php';
$self = whoami();
include_once 'include/switcher_functions.inc.php';
include_once ROOT_DIR . '/admin/include/AdminUtils.inc.php';
/*
 * YOUR CODE HERE
 */
require_once ROOT_DIR . '/include/Forms/UserProfileForm.inc.php';
$userId = DataValidator::is_uinteger($_GET['id_user']);
if ($userId === false) {
    $data = new CText('Utente non trovato');
} else {
    $user_info = $dh->_get_user_info($userId);
    if (AMA_DataHandler::isError($userId)) {
        $data = new CText('Utente non trovato');
    } else {
        $viewedUserObj = MultiPort::findUser($userId);
        $viewedUserObj->toArray();
        $user_dataAr = array('id' => $viewedUserObj->getId(), 'tipo' => $viewedUserObj->getTypeAsString(), 'nome e cognome' => $viewedUserObj->getFullName(), 'data di nascita' => $viewedUserObj->getBirthDate(), 'Comune o stato estero di nascita' => $viewedUserObj->getBirthCity(), 'Provincia di nascita' => $viewedUserObj->getBirthProvince(), 'genere' => $viewedUserObj->getGender(), 'email' => $viewedUserObj->getEmail(), 'telefono' => $viewedUserObj->getPhoneNumber(), 'indirizzo' => $viewedUserObj->getAddress(), 'citta' => $viewedUserObj->getCity(), 'provincia' => $viewedUserObj->getProvince(), 'nazione' => $viewedUserObj->getCountry(), 'confermato' => $viewedUserObj->getStatus() == ADA_STATUS_REGISTERED ? translateFN("Si") : translateFN("No"));
        $data = BaseHtmlLib::labeledListElement('class:view_info', $user_dataAr);
    }
}
$label = translateFN('Profilo utente');
$help = translateFN('Da qui il provider admin può visualizzare il profilo di un utente esistente');
$content_dataAr = array('user_name' => $user_name, 'user_type' => $user_type, 'status' => $status, 'label' => $label, 'help' => $help, 'data' => $data->getHtml(), 'edit_profile' => $userObj->getEditProfilePage(), 'module' => isset($module) ? $module : '', 'messages' => $user_messages->getHtml());
ARE::render($layout_dataAr, $content_dataAr);
コード例 #3
0
 * Clear node and layout variable in $_SESSION
 */
$variableToClearAR = array('node', 'layout', 'course', 'course_instance');
/**
 * Users (types) allowed to access this module.
 */
$allowedUsersAr = array(AMA_TYPE_STUDENT);
/**
 * Performs basic controls before entering this module
 */
$neededObjAr = array(AMA_TYPE_STUDENT => array('layout'));
require_once ROOT_DIR . '/include/module_init.inc.php';
include_once ROOT_DIR . '/browsing/include/browsing_functions.inc.php';
$self = whoami();
if (isset($_GET['id']) && DataValidator::is_uinteger($_GET['id'])) {
    $tutorObj = MultiPort::findUser($_GET['id']);
    if ($tutorObj instanceof ADAPractitioner) {
        $dati = CDOMElement::create('div');
        $fullname = CDOMElement::create('div');
        $fullname->addChild(new CText(translateFN('User: '******' ' . $tutorObj->getFullName()));
        $username = CDOMElement::create('div');
        $username->addChild(new CText(translateFN('Username: '******' ' . $tutorObj->getUserName()));
        $tutorProfile = $tutorObj->getProfile();
        if ($tutorProfile == 'NULL') {
            $tutorProfile = '';
        }
        $profile = CDOMElement::create('div');
        $profile->addChild(new CText(translateFN('Profile: ') . ' ' . $tutorProfile));
        $dati->addChild($fullname);
        $dati->addChild($username);
        $dati->addChild($profile);
コード例 #4
0
ファイル: event_proposal.php プロジェクト: eguicciardi/ada
  * Controllo validita' sui dati in arrivo dal form
  */
 $selected_date = $_POST['date'];
 $course_instance = $_POST['id_course_instance'];
 $practitioner_proposal = $_SESSION['practitioner_proposal'];
 $msg_id = $_SESSION['event_msg_id'];
 unset($_SESSION['practitioner_proposal']);
 unset($_SESSION['event_msg_id']);
 $mittente = $user_uname;
 $destinatari = array($practitioner_proposal['mittente']);
 $subject = $practitioner_proposal['titolo'];
 $tutor_id = $common_dh->find_user_from_username($practitioner_proposal['mittente']);
 if (AMA_Common_DataHandler::isError($tutor_id)) {
     $errObj = new ADA_Error(NULL, translateFN("Errore nell'ottenimento del practitioner"));
 }
 $tutorObj = MultiPort::findUser($tutor_id);
 /*
  * Get the ada admin username, it is needed in order to send email notifications
  * to both the users as ADA.
  */
 $admtypeAr = array(AMA_TYPE_ADMIN);
 $admList = $common_dh->get_users_by_type($admtypeAr);
 if (!AMA_DataHandler::isError($admList)) {
     $adm_uname = $admList[0]['username'];
 } else {
     $adm_uname = "";
     // ??? FIXME: serve un superadmin nel file di config?
 }
 /*
  * Obtain a messagehandler instance for the correct tester
  */
コード例 #5
0
ファイル: subscribe.php プロジェクト: eguicciardi/ada
      * Handle a subscription request made by a user that has also asked for registration.
      * To proceed, we have to check that the given token exists for this user and that
      * the token is valid too.
      * Additionally we have to check that the user has been correctly registered and
      * that needs to confirm his/her registration.
      */
     $tokenObj = TokenFinder::findTokenForUserRegistration($r_id_user, $token);
     if ($tokenObj === false || !$tokenObj->isValid()) {
         /*
          * There isn't a token corresponding to input data, do not proceed.
          */
         $message = translateFN('An error occurred while processing your request. Try later');
         header('Location: ' . HTTP_ROOT_DIR . '/index.php?message=' . urlencode($message));
         exit;
     }
     $userObj = MultiPort::findUser($r_id_user);
     if ($userObj instanceof ADAUser && $userObj->getStatus() == ADA_STATUS_PRESUBSCRIBED) {
         $isRegistration = TRUE;
     } else {
         /*
          * Wrong type of user or wrong user status. Do not proceed.
          */
         $message = translateFN('An error occurred while processing your request. Try later') . '(2)';
         header('Location: ' . HTTP_ROOT_DIR . '/index.php?message=' . urlencode($message));
         exit;
     }
 } elseif (isset($_SESSION['sess_id_user'])) {
     $isSubscription = TRUE;
     // user is already registered
     // $id_user = $_SESSION['sess_id_user'];
     // $userObj = $_SESSION['sess_userObj'];
コード例 #6
0
 function get_class_reportFN($id_course, $order = "", $index_att = "", $type = 'HTML')
 {
     $dh = $GLOBALS['dh'];
     $http_root_dir = $GLOBALS['http_root_dir'];
     $debug = isset($GLOBALS['debug']) ? $GLOBALS['debug'] : null;
     $npar = isset($GLOBALS['npar']) ? $GLOBALS['npar'] : null;
     $hpar = isset($GLOBALS['hpar']) ? $GLOBALS['hpar'] : null;
     $mpar = isset($GLOBALS['mpar']) ? $GLOBALS['mpar'] : null;
     $epar = isset($GLOBALS['epar']) ? $GLOBALS['epar'] : null;
     $bpar = isset($GLOBALS['mpar']) ? $GLOBALS['mpar'] : null;
     $cpar = isset($GLOBALS['epar']) ? $GLOBALS['epar'] : null;
     // default parameters for activity index are in configuration file
     if (empty($npar)) {
         $npar = NOTE_PAR;
     }
     // notes
     if (!isset($hpar)) {
         $hpar = HIST_PAR;
     }
     // history
     if (!isset($mpar)) {
         $mpar = MSG_PAR;
     }
     //messages
     if (!isset($epar)) {
         $epar = EXE_PAR;
     }
     // exercises
     if (!isset($bpar)) {
         $bpar = defined('BKM_PAR') ? BKM_PAR : null;
     }
     //bookmarks
     if (!isset($cpar)) {
         $cpar = defined('CHA_PAR') ? CHA_PAR : null;
     }
     // chat
     $student_list_ar = $this->student_list;
     $id_instance = $this->id;
     if ($student_list_ar != 0) {
         $info_course = $dh->get_course($id_course);
         // Get title course
         if (AMA_DataHandler::isError($info_course)) {
             $msg = $info_course->getMessage();
             return $msg;
         }
         $course_title = $info_course['titolo'];
         $instance_course_ha = $dh->course_instance_get($id_instance);
         // Get the instance courses data
         if (AMA_DataHandler::isError($instance_course_ha)) {
             $msg = $instance_course_ha->getMessage();
             return $msg;
         }
         $start_date = AMA_DataHandler::ts_to_date($instance_course_ha['data_inizio'], ADA_DATE_FORMAT);
         $num_student = -1;
         $tot_history_count = 0;
         $tot_exercises_score = 0;
         $tot_exercises_number = 0;
         $tot_added_notes = 0;
         $tot_read_notes = 0;
         $tot_message_count = 0;
         $tot_message_count_in = 0;
         $tot_message_count_out = 0;
         $tot_bookmarks_count = 0;
         $tot_chatlines_count_out = 0;
         $tot_index = 0;
         $tot_level = 0;
         /**
          * @author giorgio 27/ott/2014
          * 
          * change to:
          * $report_generation_TS = time();
          * 
          * to have full date & time generation of report
          * but be warned that table log_classi may grow A LOT!
          */
         $report_generation_TS = dt2tsFN(today_dateFN());
         if (MODULES_TEST) {
             $tot_exercises_score_test = 0;
             $tot_exercises_number_test = 0;
             $tot_exercises_score_survey = 0;
             $tot_exercises_number_survey = 0;
             $test_db = AMATestDataHandler::instance(MultiPort::getDSN($_SESSION['sess_selected_tester']));
             $test_score = $test_db->getStudentsScores($id_course, $id_instance);
         }
         foreach ($student_list_ar as $one_student) {
             $num_student++;
             //starts with 0
             $id_student = $one_student['id_utente_studente'];
             $student_level = $one_student['livello'];
             $status_student = $one_student['status'];
             $dati['id'] = $id_student;
             $dati['level'] = $student_level;
             $ymdhms = today_dateFN();
             $utime = dt2tsFN($ymdhms);
             $dati['date'] = $report_generation_TS;
             if (!empty($id_student) and ($status_student == ADA_STATUS_SUBSCRIBED or $status_student == ADA_SERVICE_SUBSCRIPTION_STATUS_COMPLETED)) {
                 $studentObj = MultiPort::findUser($id_student);
                 //new Student($id_student,$id_instance);
                 if ($studentObj->full != 0) {
                     //==0) {
                     $err_msg = $studentObj->error_msg;
                 } else {
                     if ($studentObj instanceof ADAPractitioner) {
                         /**
                          * @author giorgio 14/apr/2015
                          * 
                          * If student is actually a tutor, build a new student
                          * object for history and evaluation purposes
                          */
                         $studentObj = $studentObj->toStudent();
                     }
                     $student_name = $studentObj->getFullname();
                     //$studentObj->nome." ".$studentObj->cognome;
                     // vito
                     $studentObj->set_course_instance_for_history($id_instance);
                     //$studentObj->history->setCourseInstance($id_instance);
                     $studentObj->history->setCourse($id_course);
                     $studentObj->get_exercise_dataFN($id_instance, $id_student);
                     $st_exercise_dataAr = $studentObj->user_ex_historyAr;
                     $st_score = 0;
                     $st_exer_number = 0;
                     if (is_array($st_exercise_dataAr)) {
                         foreach ($st_exercise_dataAr as $exercise) {
                             $st_score += $exercise[7];
                             $st_exer_number++;
                         }
                     }
                     $dati['exercises'] = $st_exer_number;
                     $dati['score'] = $st_score;
                     if (MODULES_TEST) {
                         $st_score_test = isset($test_score[$id_student]['score_test']) ? $test_score[$id_student]['score_test'] : 0;
                         $st_exer_number_test = isset($test_score[$id_student]['max_score_test']) ? $test_score[$id_student]['max_score_test'] : 0;
                         $dati['exercises_test'] = $st_exer_number_test;
                         $dati['score_test'] = $st_score_test;
                         $st_score_survey = isset($test_score[$id_student]['score_survey']) ? $test_score[$id_student]['score_survey'] : 0;
                         $st_exer_number_survey = isset($test_score[$id_student]['max_score_survey']) ? $test_score[$id_student]['max_score_survey'] : 0;
                         $dati['exercises_survey'] = $st_exer_number_survey;
                         $dati['score_survey'] = $st_score_survey;
                     }
                     $sub_courses = $dh->get_subscription($id_student, $id_instance);
                     if ($sub_courses['tipo'] == ADA_STATUS_SUBSCRIBED) {
                         $out_fields_ar = array('nome', 'titolo', 'id_istanza', 'data_creazione');
                         $clause = "tipo = '" . ADA_NOTE_TYPE . "' AND id_utente = '{$id_student}'";
                         $nodes = $dh->find_course_nodes_list($out_fields_ar, $clause, $id_course);
                         $added_nodes_count = count($nodes);
                         $added_nodes_count_norm = str_pad($added_nodes_count, 5, "0", STR_PAD_LEFT);
                         $added_notes = "<!-- {$added_nodes_count_norm} --><a href={$http_root_dir}/tutor/tutor.php?op=student_notes&id_instance={$id_instance}&id_student={$id_student}>" . $added_nodes_count . "</a>";
                         //$added_notes = $added_nodes_count;
                     } else {
                         $added_notes = "<!-- 0 -->-";
                     }
                     $read_notes_count = $studentObj->total_visited_notesFN($id_student, $id_course);
                     if ($read_notes_count > 0) {
                         $read_nodes_count_norm = str_pad($read_notes_count, 5, "0", STR_PAD_LEFT);
                         $read_notes = "<!-- {$read_nodes_count_norm} -->{$read_notes_count}";
                     } else {
                         $read_notes = "<!-- 0 -->-";
                     }
                     $st_history_count = "0";
                     $debug = 0;
                     $st_history_count = $studentObj->total_visited_nodesFN($id_student, ADA_LEAF_TYPE);
                     // vito, 11 mar 2009. Ottiene solo il numero di visite a nodi di tipo foglia.
                     // vogliamo anche il numero di visite a nodi di tipo gruppo.
                     $st_history_count += $studentObj->total_visited_nodesFN($id_student, ADA_GROUP_TYPE);
                     $dati['visits'] = $st_history_count;
                     $st_name = "<!-- {$student_name} --><a href=" . $http_root_dir . "/tutor/tutor.php?op=zoom_student&id_student=" . $id_student;
                     $st_name .= "&id_course=" . $id_course . "&id_instance=" . $id_instance . ">";
                     $st_name .= $student_name . "</a>";
                     $st_history_count_norm = str_pad($st_history_count, 5, "0", STR_PAD_LEFT);
                     $st_history = "<!-- {$st_history_count_norm} --><a href=" . $http_root_dir . "/tutor/tutor_history.php?id_student=" . $id_student;
                     $st_history .= "&id_course=" . $id_course . "&id_course_instance=" . $id_instance . ">";
                     $st_history .= $st_history_count . "</a>";
                     $st_history_last_access = $studentObj->get_last_accessFN($id_instance, "T");
                     //$dati['date'] = $st_history_last_access;
                     $st_score_norm = str_pad($st_score, 5, "0", STR_PAD_LEFT);
                     $st_exercises = "<!-- {$st_score_norm} --><a href=" . $http_root_dir . "/tutor/tutor_exercise.php?id_student=" . $id_student;
                     $st_exercises .= "&id_course_instance=" . $id_instance . " class='dontwrap'>";
                     $st_exercises .= $st_score . " " . translateFN("su") . " " . $st_exer_number * ADA_MAX_SCORE . "</a>";
                     if (MODULES_TEST) {
                         $st_score_norm_test = str_pad($st_score_test, 5, "0", STR_PAD_LEFT);
                         $st_exercises_test = '<!-- ' . $st_score_norm_test . ' --><a href="' . MODULES_TEST_HTTP . '/tutor.php?op=test&id_course_instance=' . $id_instance . '&id_course=' . $id_course . '&id_student=' . $id_student . '" class="dontwrap">' . $st_score_test . ' ' . translateFN('su') . ' ' . $st_exer_number_test . '</a>';
                         $st_score_norm_survey = str_pad($st_score_survey, 5, "0", STR_PAD_LEFT);
                         $st_exercises_survey = '<!-- ' . $st_score_norm_survey . ' --><a href="' . MODULES_TEST_HTTP . '/tutor.php?op=survey&id_course_instance=' . $id_instance . '&id_course=' . $id_course . '&id_student=' . $id_student . '" class="dontwrap">' . $st_score_survey . ' ' . translateFN('su') . ' ' . $st_exer_number_survey . '</a>';
                     }
                     // user data
                     $dati_stude[$num_student]['id'] = $id_student;
                     $dati_stude[$num_student]['student'] = $st_name;
                     // history
                     $dati_stude[$num_student]['history'] = $st_history;
                     $tot_history_count += $st_history_count;
                     if ($st_history_last_access != "-") {
                         $dati_stude[$num_student]['last_access'] = "<a href=\"{$http_root_dir}/tutor/tutor_history_details.php?period=1&id_student={$id_student}&id_course_instance={$id_instance}&id_course={$id_course}\">" . $st_history_last_access . "</a>";
                         $dati['last_access'] = $studentObj->get_last_accessFN($id_instance, 'UT');
                     } else {
                         $dati_stude[$num_student]['last_access'] = $st_history_last_access;
                         $dati['last_access'] = null;
                     }
                     // exercises
                     $tot_exercises_score += $st_score;
                     $tot_exercises_number += $st_exer_number;
                     $dati_stude[$num_student]['exercises'] = $st_exercises;
                     $dati['exercises'] = $st_exer_number;
                     if (MODULES_TEST) {
                         $tot_exercises_score_test += $st_score_test;
                         $tot_exercises_number_test += $st_exer_number_test;
                         $dati_stude[$num_student]['exercises_test'] = $st_exercises_test;
                         $dati['exercises_test'] = $st_exer_number_test;
                         $tot_exercises_score_survey += $st_score_survey;
                         $tot_exercises_number_survey += $st_exer_number_survey;
                         $dati_stude[$num_student]['exercises_survey'] = $st_exercises_survey;
                         $dati['exercises_survey'] = $st_exer_number_survey;
                     }
                     // forum notes written
                     $dati_stude[$num_student]['added_notes'] = $added_notes;
                     $tot_added_notes += $added_nodes_count;
                     $dati['added_notes'] = $added_nodes_count;
                     // forum notes read
                     $dati_stude[$num_student]['read_notes'] = $read_notes;
                     $tot_read_notes += $read_notes_count;
                     $dati['read_notes'] = $read_notes_count;
                     // messages
                     //$mh = new MessageHandler("%d/%m/%Y - %H:%M:%S");
                     $mh = MessageHandler::instance(MultiPort::getDSN($_SESSION['sess_selected_tester']));
                     $sort_field = "data_ora desc";
                     // messages received
                     $msgs_ha = $mh->get_messages($id_student, ADA_MSG_SIMPLE, array("id_mittente", "data_ora"), $sort_field);
                     if (AMA_DataHandler::isError($msgs_ha)) {
                         $err_code = $msgs_ha->code;
                         $dati_stude[$num_student]['message_count_in'] = "-";
                     } else {
                         $user_message_count = count($msgs_ha);
                         $dati_stude[$num_student]['message_count_in'] = $user_message_count;
                         $tot_message_count += $user_message_count;
                     }
                     $tot_message_count_in += $user_message_count;
                     $dati['msg_in'] = $user_message_count;
                     // messages sent
                     $msgs_ha = $mh->get_sent_messages($id_student, ADA_MSG_SIMPLE, array("id_mittente", "data_ora"), $sort_field);
                     if (AMA_DataHandler::isError($msgs_ha)) {
                         $err_code = $msgs_ha->code;
                         $dati_stude[$num_student]['message_count_out'] = "-";
                     } else {
                         $user_message_count = count($msgs_ha);
                         $dati_stude[$num_student]['message_count_out'] = $user_message_count;
                         $tot_message_count += $user_message_count;
                     }
                     $tot_message_count_out += $user_message_count;
                     $dati['msg_out'] = $user_message_count;
                     //chat..
                     $msgs_ha = $mh->get_sent_messages($id_student, ADA_MSG_CHAT, array("id_mittente", "data_ora"), $sort_field);
                     if (AMA_DataHandler::isError($msgs_ha)) {
                         $err_code = $msgs_ha->code;
                         $dati_stude[$num_student]['chat'] = "-";
                     } else {
                         $chatlines_count_out = count($msgs_ha);
                         $dati_stude[$num_student]['chat'] = $chatlines_count_out;
                         $tot_chatlines_count_out += $chatlines_count_out;
                     }
                     $tot_chatlines_count_out += $chatlines_count_out;
                     $dati['chat'] = $chatlines_count_out;
                     //bookmarks..
                     include_once 'bookmark_class.inc.php';
                     $bookmarks_count = count(Bookmark::get_bookmarks($id_student));
                     $dati_stude[$num_student]['bookmarks'] = $bookmarks_count;
                     $tot_bookmarks_count += $bookmarks_count;
                     $dati['bookmarks'] = $bookmarks_count;
                     // activity index
                     if (empty($index_att)) {
                         // parametro passato alla funzione
                         if (empty($GLOBALS['index_activity_expression'])) {
                             //
                             if (!isset($bcount)) {
                                 $bcount = 1;
                             }
                             $index = $added_nodes_count * $npar + $st_history_count * $hpar + $user_message_count * $mpar + $st_exer_number * $epar + $bookmarks_count * $bcount + $chatlines_count_out * $cpar;
                         } else {
                             $index = eval($GLOBALS['index_activity_expression']);
                         }
                     } else {
                         $index = eval($index_att);
                     }
                     $dati_stude[$num_student]['index'] = $index;
                     //echo $index;
                     $tot_index += $index;
                     $dati['index'] = $index;
                     // level
                     $tot_level += $student_level;
                     $dati_stude[$num_student]['level'] = '<span id="studentLevel_' . $id_student . '">' . $student_level . '</span>';
                     $forceUpdate = false;
                     $linksHtml = $this->generateLevelButtons($id_student, $forceUpdate);
                     $dati_stude[$num_student]['level_plus'] = !is_null($linksHtml) ? $linksHtml : '-';
                     // inserting a row in table log_classi
                     $this->log_class_data($id_course, $id_instance, $dati);
                 }
             }
         }
         // average data
         $tot_students = $num_student + 1;
         $av_history = $tot_history_count / $tot_students;
         $av_exercises = $tot_exercises_score / $tot_students . " " . translateFN("su") . " " . floor($tot_exercises_number * ADA_MAX_SCORE / $tot_students);
         if (MODULES_TEST) {
             $av_exercises_test = round($tot_exercises_score_test / $tot_students, 2) . ' ' . translateFN('su') . ' ' . floor($tot_exercises_number_test / $tot_students);
             $av_exercises_survey = round($tot_exercises_score_survey / $tot_students, 2) . ' ' . translateFN('su') . ' ' . floor($tot_exercises_number_survey / $tot_students);
         }
         $av_added_notes = $tot_added_notes / $tot_students;
         $av_read_notes = $tot_read_notes / $tot_students;
         $av_message_count_in = $tot_message_count_in / $tot_students;
         $av_message_count_out = $tot_message_count_out / $tot_students;
         $av_chat_count_out = $tot_chatlines_count_out / $tot_students;
         $av_bookmarks_count = $tot_bookmarks_count / $tot_students;
         $av_index = $tot_index / $tot_students;
         $av_level = $tot_level / $tot_students;
         $av_student = $tot_students;
         $dati_stude[$av_student]['id'] = "-";
         $dati_stude[$av_student]['student'] = translateFN("Media");
         $dati_stude[$av_student]['history'] = round($av_history, 2);
         $dati_stude[$av_student]['last_access'] = "-";
         $dati_stude[$av_student]['exercises'] = '<span class="dontwrap">' . $av_exercises . '</span>';
         if (MODULES_TEST) {
             $dati_stude[$av_student]['exercises_test'] = '<span class="dontwrap">' . $av_exercises_test . '</span>';
             $dati_stude[$av_student]['exercises_survey'] = '<span class="dontwrap">' . $av_exercises_survey . '</span>';
         }
         $dati_stude[$av_student]['added_notes'] = round($av_added_notes, 2);
         $dati_stude[$av_student]['read_notes'] = round($av_read_notes, 2);
         $dati_stude[$av_student]['message_count_in'] = round($av_message_count_in, 2);
         $dati_stude[$av_student]['message_count_out'] = round($av_message_count_out, 2);
         $dati_stude[$av_student]['chat'] = round($av_chat_count_out, 2);
         $dati_stude[$av_student]['bookmarks'] = round($av_bookmarks_count, 2);
         $dati_stude[$av_student]['index'] = round($av_index, 2);
         $dati_stude[$av_student]['level'] = '<span id="averageLevel">' . round($av_level, 2) . '</span>';
         $dati_stude[$av_student]['level_plus'] = "-";
         // @author giorgio 16/mag/2013
         // was $dati_stude[$av_student]['level_minus'] = "-";
         // $dati_stude[$av_student]['level_less'] = "-";
         if (!empty($order)) {
             //var_dump($dati_stude);
             $dati_stude = masort($dati_stude, $order, 1, SORT_NUMERIC);
         }
         // TABLE LABELS
         $table_labels[0] = $this->generate_class_report_header();
         /**
          * @author giorgio 16/mag/2013
          * 
          * unset the unwanted columns data and labels. unwanted cols are defined in config/config_class_report.inc.php
          */
         $arrayToUse = 'report' . $type . 'ColArray';
         $this->clean_class_reportFN($arrayToUse, $table_labels, $dati_stude);
         return array('report_generation_date' => $report_generation_TS) + array_merge($table_labels, $dati_stude);
     } else {
         return null;
     }
 }
コード例 #7
0
 }
 if (($value = ADAEventProposal::canProposeThisDateTime($userObj, $date3, $time3, $sess_selected_tester)) !== TRUE) {
     $errors['date3'] = $value;
 }
 $datetimesAr = array(array('date' => $date1, 'time' => $time1), array('date' => $date2, 'time' => $time2), array('date' => $date3, 'time' => $time3));
 $message_content = ADAEventProposal::generateEventProposalMessageContent($datetimesAr, $id_course_instance, $notes);
 if (count($errors) > 0) {
     $data = array('testo' => $message_content, 'titolo' => $subject, 'flags' => $type);
     $form = CommunicationModuleHtmlLib::getEventProposalForm($id_user, $data, $errors, $sess_selected_tester);
 } else {
     /*
      * If we are ready to send the message, we can safely unset $_SESSION['event_msg_id'])
      */
     unset($_SESSION['event_msg_id']);
     $mh = MessageHandler::instance(MultiPort::getDSN($sess_selected_tester));
     $addresseeObj = MultiPort::findUser($id_user);
     $message_ha = array('tipo' => ADA_MSG_AGENDA, 'flags' => ADA_EVENT_PROPOSED | $type, 'mittente' => $user_uname, 'destinatari' => array($addresseeObj->username), 'data_ora' => 'now', 'titolo' => ADAEventProposal::addEventToken($event_token, $subject), 'testo' => $message_content);
     $res = $mh->send_message($message_ha);
     if (AMA_DataHandler::isError($res)) {
         $errObj = new ADA_Error($res, translateFN('Impossibile spedire il messaggio'), NULL, NULL, NULL, $error_page . '?err_msg=' . urlencode(translateFN('Impossibile spedire il messaggio')));
     }
     /*
      * If there aren't errors, redirect the user to his agenda
      */
     /*
      * SE ABBIAMO INVIATO UNA MODIFICA AD UNA PROPOSTA DI APPUNTAMENTO,
      * LA PROPOSTA PRECEDENTE DEVE ESSERE MARCATA COME CANCELLATA IN
      * DESTINATARI MESSAGGI PER L'UTENTE PRACTITIONER
      */
     if (isset($previous_proposal_msg_id)) {
         MultiPort::removeUserAppointments($userObj, array($previous_proposal_msg_id));
コード例 #8
0
ファイル: confirm.php プロジェクト: eguicciardi/ada
     /*
      * Token or userid not valid, do not proceed.
      */
     header('Location: ' . HTTP_ROOT_DIR);
     exit;
 }
 $tokenObj = TokenFinder::findTokenForUserRegistration($userid, $token);
 if ($tokenObj == false) {
     /*
      * There isn't a token corresponding to input data, do not proceed.
      */
     $message = translateFN('Did not find a token that matches your request');
     header('Location: ' . HTTP_ROOT_DIR . '/index.php?message=' . urlencode($message));
     exit;
 }
 $userObj = MultiPort::findUser($userid);
 if ($userObj instanceof ADAUser) {
     // se stato != preiscritto mostrare un messaggio adeguato
     if ($userObj->getStatus() != ADA_STATUS_PRESUBSCRIBED) {
         $message = translateFN('Forse un utente con questi dati ha già confermato la tua registrazione');
         //      $message = translateFN('Maybe a user with these data has already confirmed his/her registration to ADA');
         header('Location: ' . HTTP_ROOT_DIR . '/index.php?message=' . urlencode($message));
         exit;
     }
 } else {
     /*
      * Only ADAUser can use this module, redirect to ADA index page.
      */
     $message = sprintf(translateFN("Non hai bisogno di confermare la tua registrazione a %s"), PORTAL_NAME);
     //      $message = translateFN("You don't need to confirm your registration to ADA");
     header('Location: ' . HTTP_ROOT_DIR . '/index.php?message=' . urlencode($message));
コード例 #9
0
ファイル: edit_user.php プロジェクト: eguicciardi/ada
            $userToEditObj->setProfile($_POST['user_profile']);
        }
        MultiPort::setUser($userToEditObj, array(), true);
        $navigationHistoryObj = $_SESSION['sess_navigation_history'];
        $location = $navigationHistoryObj->lastModule();
        header('Location: ' . $location);
        exit;
    }
} else {
    /*
     * Display the add user form
     */
    if (DataValidator::is_uinteger($_GET['id_user']) === FALSE) {
        $form = new CText('');
    } else {
        $userToEditObj = MultiPort::findUser($_GET['id_user']);
        $user_dataAr = $userToEditObj->toArray();
        $testers_for_userAr = $common_dh->get_testers_for_user($_GET['id_user']);
        /*
         * FIXME: selects just one tester. if the user is of type ADAUser
         * we have to display all the associated testers.
         */
        if (!AMA_Common_DataHandler::isError($testers_for_userAr) && count($testers_for_userAr) > 0) {
            $tester = $testers_for_userAr[0];
        } else {
            $tester = NULL;
        }
        $dataAr = array('user_id' => $user_dataAr['id_utente'], 'user_firstname' => $user_dataAr['nome'], 'user_lastname' => $user_dataAr['cognome'], 'user_type' => $user_dataAr['tipo'], 'user_email' => $user_dataAr['e_mail'], 'user_username' => $user_dataAr['username'], 'user_layout' => $user_dataAr['layout'], 'user_address' => $user_dataAr['indirizzo'], 'user_city' => $user_dataAr['citta'], 'user_province' => $user_dataAr['provincia'], 'user_country' => $user_dataAr['nazione'], 'user_fiscal_code' => $user_dataAr['codice_fiscale'], 'user_birthdate' => $user_dataAr['birthdate'], 'user_sex' => $user_dataAr['sesso'], 'user_phone' => $user_dataAr['telefono'], 'user_tester' => $tester, 'user_profile' => isset($user_dataAr['profilo']) ? $user_dataAr['profilo'] : null, 'user_birthcity' => $user_dataAr['birthcity'], 'user_birthprovince' => $user_dataAr['birthprovince']);
        $testers_dataAr = $common_dh->get_all_testers(array('id_tester', 'nome'));
        if (AMA_Common_DataHandler::isError($testers_dataAr)) {
            $errObj = new ADA_Error($testersAr, translateFN("Errore nell'ottenimento delle informazioni sui tester"));
コード例 #10
0
ファイル: tutor_history.php プロジェクト: eguicciardi/ada
    $epar = EXE_PAR;
    // exercises
}
/*
 * retrieving student data
 *
 * we shall divide visits from exercises and notes...
 *
*/
$courseObj = read_course_from_DB($courseInstanceObj->id_corso);
if (AMA_DataHandler::isError($courseObj)) {
} else {
    $course_title = $courseObj->titolo;
    $start_date = AMA_DataHandler::ts_to_date($courseInstanceObj->data_inizio);
}
$studentObj = MultiPort::findUser($id_student);
if (AMA_DataHandler::isError($studentObj)) {
    header('Location: tutor.php');
    exit;
} else {
    if ($studentObj instanceof ADAPractitioner) {
        /**
         * @author giorgio 14/apr/2015
         *
         * If student is actually a tutor, build a new student
         * object for history and evaluation purposes
         */
        $studentObj = $studentObj->toStudent();
    }
}
$student_name = $studentObj->getFullName();
コード例 #11
0
ファイル: view_course.php プロジェクト: eguicciardi/ada
require_once realpath(dirname(__FILE__)) . '/../config_path.inc.php';
/**
 * Clear node and layout variable in $_SESSION
 */
$variableToClearAR = array('node', 'layout', 'course', 'course_instance');
/**
 * Users (types) allowed to access this module.
 */
$allowedUsersAr = array(AMA_TYPE_SWITCHER);
/**
 * Performs basic controls before entering this module
 */
$neededObjAr = array(AMA_TYPE_SWITCHER => array('layout', 'course'));
require_once ROOT_DIR . '/include/module_init.inc.php';
$self = whoami();
include_once 'include/switcher_functions.inc.php';
/*
 * YOUR CODE HERE
 */
if (!$courseObj instanceof Course || !$courseObj->isFull()) {
    $data = new CText(translateFN('Corso non trovato'));
} else {
    $authorObj = MultiPort::findUser($courseObj->getAuthorId());
    $language_info = Translator::getLanguageInfoForLanguageId($courseObj->getLanguageId());
    $formData = array('id corso' => $courseObj->getId(), 'autore' => $authorObj->getFullName(), 'lingua' => $language_info['nome_lingua'], 'codice corso' => $courseObj->getCode(), 'titolo' => $courseObj->getTitle(), 'descrizione' => $courseObj->getDescription(), 'id nodo iniziale' => $courseObj->getRootNodeId(), 'id nodo toc' => $courseObj->getTableOfContentsNodeId(), 'media path' => $courseObj->getMediaPath(), 'data di creazione' => $courseObj->getCreationDate(), 'data di pubblicazione' => $courseObj->getPublicationDate(), 'crediti' => $courseObj->getCredits());
    $data = BaseHtmlLib::labeledListElement('class:view_info', $formData);
}
$label = translateFN('Visualizzazione dei dati del corso');
$help = translateFN('Da qui il provider admin può visualizzare i dati di un corso esistente');
$content_dataAr = array('user_name' => $user_name, 'user_type' => $user_type, 'status' => $status, 'label' => $label, 'edit_profile' => $userObj->getEditProfilePage(), 'help' => $help, 'data' => $data->getHtml(), 'module' => isset($module) ? $module : '', 'messages' => $user_messages->getHtml());
ARE::render($layout_dataAr, $content_dataAr);
コード例 #12
0
ファイル: DB_read.inc.php プロジェクト: eguicciardi/ada
/**
 * Reads a ADA user from database.
 * @param  int $id_user - a valid ADA user identifier
 * @return a ADAGenericUser object on success, on failure raises a ADA_Error
 */
function read_user_from_DB($id_user)
{
    if ($id_user > 0) {
        /*
         * leggi utente da database
         */
        $userObj = MultiPort::findUser($id_user);
        if (is_null($userObj)) {
            /*
             * Return a ADA_Error object with delayedErrorHandling set to TRUE.
             */
            return new ADA_Error(NULL, translateFN('Errore in lettura oggetto utente'), 'read_user_from_DB', NULL, NULL, NULL, TRUE);
        }
        return $userObj;
    } else {
        return new ADAGuest();
    }
    //$sess_id_user = $_SESSION['sess_id_user'];
    //$sess_id_course_instance = $_SESSION['sess_id_course_instance'];
    //$sess_user_level = $_SESSION['sess_user_level'];
    //
    //$dh = $GLOBALS['dh'];
    //
    //if (!isset($id_user))
    //   $id_user = $sess_id_user;
    //
    //if (isset($id_user)) {
    //             $userObj = new User($id_user);
    //             $id_profile = $userObj->tipo;
    //             if ($id_profile==AMA_TYPE_STUDENT) {
    //                  $userObj = new Student($id_user,$sess_id_course_instance);//
    ////                  echo "dopo userobj<BR>";
    //             }
    //             if (!is_object($userObj))   {
    //                                      $error_msg = translateFN("Errore nella creazione dell'utente $sess_id_user");
    //                                      //mydebug(__LINE__,__FILE__,array('msg'=>translateFN("ADA: Errore nella creazione dell'utente $sess_id_user")));
    //                                      $result = $error_msg; //
    //             } else {
    //                       if  (!$userObj->full) {
    //                                      $error_msg = $userObj->error_mg;
    //                                      $result = $error_msg; //
    //                       } else  {
    //
    //                         if ($id_profile==AMA_TYPE_STUDENT){
    //                              $level = 0;
    //                                    if (isset($sess_id_course_instance))
    //                                         $level = $dh->_get_student_level($id_user,$sess_id_course_instance);
    //                                // or else:
    //                                  //  $data_Ha = $dh->get_subscription($id_user, $sess_id_course_instance);
    //                                  //  $level =  $data_Ha["livello"];
    //                                    $userObj->level = $level;
    //                          }
    //                          $result =$userObj;
    //                        }
    //            }
    //} else {
    //               $error_msg = translateFN("Errore: utente non specificato");
    //              //mydebug(__LINE__,__FILE__,array('msg'=>translateFN("ADA: Errore nella creazione dell'utente $sess_id_user")));
    //              $result = $error_msg; //
    //}
    //
    //return $result;
}
コード例 #13
0
ファイル: delete_user.php プロジェクト: eguicciardi/ada
    if ($userId !== false && isset($_POST['delete']) && intval($_POST['delete']) === 1) {
        $userToDeleteObj = MultiPort::findUser($userId);
        if ($userToDeleteObj instanceof ADALoggableUser) {
            $userToDeleteObj->setStatus(ADA_STATUS_PRESUBSCRIBED);
            MultiPort::setUser($userToDeleteObj, array(), true);
            $data = new CText(sprintf(translateFN("L'utente \"%s\" è stato disabilitato."), $userToDeleteObj->getFullName()));
        } else {
            $data = new CText(translateFN('Utente non trovato') . '(3)');
        }
    } else {
        $data = new CText(translateFN('Utente non disabilitato.'));
    }
} else {
    $userId = DataValidator::is_uinteger($_GET['id_user']);
    if ($userId === false) {
        $data = new CText(translateFN('Utente non trovato') . '(1)');
    } else {
        $userToDeleteObj = MultiPort::findUser($userId);
        if ($userToDeleteObj instanceof ADALoggableUser) {
            $formData = array('id_user' => $userId);
            $data = new UserRemovalForm();
            $data->fillWithArrayData($formData);
        } else {
            $data = new CText(translateFN('Utente non trovato') . '(2)');
        }
    }
}
$label = translateFN('Cancellazione utente');
$help = translateFN('Da qui il provider admin può disabilitare un utente esistente');
$content_dataAr = array('user_name' => $user_name, 'user_type' => $user_type, 'status' => $status, 'label' => $label, 'help' => $help, 'data' => $data->getHtml(), 'module' => isset($module) ? $module : '', 'messages' => $user_messages->getHtml());
ARE::render($layout_dataAr, $content_dataAr);
コード例 #14
0
 $users_infoAr = $dh->course_instance_students_presubscribe_get_list($id_course_instance);
 if (AMA_DataHandler::isError($users_infoAr)) {
     $errObj = new ADA_Error($users_infoAr, translateFN("Errore nell'ottenimento dei dati dello studente"), NULL, NULL, NULL, $userObj->getHomePage());
 }
 /*
  * Get tutored user info
  */
 /*
  * In ADA only a student can be subscribed to a specific course instance
  * if the service has level < 4.
  * TODO: handle form generation for service with level = 4 and multiple users
  * subscribed.
  */
 $user_infoAr = $users_infoAr[0];
 $id_user = $user_infoAr['id_utente_studente'];
 $tutoredUserObj = MultiPort::findUser($id_user);
 $service_infoAr['id_istanza_corso'] = $id_course_instance;
 $service_infoAr['event_token'] = $event_token;
 /*
  * Check if an eguidance session with this event_token exists. In this case,
  * use this data to fill the form.
  */
 $eguidance_session_dataAr = $dh->get_eguidance_session_with_event_token($event_token);
 if (!AMA_DataHandler::isError($eguidance_session_dataAr)) {
     if ($is_popup) {
         $eguidance_session_dataAr['is_popup'] = true;
     }
     $form = TutorModuleHtmlLib::getEditEguidanceDataForm($tutoredUserObj, $service_infoAr, $eguidance_session_dataAr);
 } else {
     $last_eguidance_session_dataAr = $dh->get_last_eguidance_session($id_course_instance);
     if (AMA_DataHandler::isError($last_eguidance_session_dataAr)) {
コード例 #15
0
ファイル: user_class.inc.php プロジェクト: eguicciardi/ada
 private static function _online_usersFN($id_course_instance, $mode = 0)
 {
     $dh = $GLOBALS['dh'];
     $error = $GLOBALS['error'];
     $http_root_dir = $GLOBALS['http_root_dir'];
     $sess_id_course_instance = isset($_SESSION['sess_id_course_instance']) ? $_SESSION['sess_id_course_instance'] : null;
     $sess_id_node = isset($_SESSION['sess_id_node']) ? $_SESSION['sess_id_node'] : null;
     $sess_id_course = isset($_SESSION['sess_id_course']) ? $_SESSION['sess_id_course'] : null;
     $sess_id_user = $_SESSION['sess_id_user'];
     /*
          Viene passato $id_course_instance per filtrare l'istanza di corso
          su cui si sta lavorando.
     */
     /**
      * @author giorgio 28/giu/2013
      * fixed bug: if neither course instance nor session course instance is set, then return null
      */
     if (!isset($id_course_instance) && (!isset($sess_id_course_instance) || is_null($sess_id_course_instance))) {
         return null;
     }
     if (!isset($id_course_instance)) {
         $id_course_instance = $sess_id_course_instance;
     }
     $now = time();
     // $mode=0;  forcing mode to increase speed
     $tolerance = 240;
     // 4 minuti
     $limit = $now - $tolerance;
     $out_fields_ar = array('data_visita', 'id_utente_studente', 'session_id');
     $clause = "data_visita > {$limit} and id_istanza_corso ='{$id_course_instance}'";
     $dataHa = $dh->_find_nodes_history_list($out_fields_ar, $clause);
     if (AMA_DataHandler::isError($dataHa) || empty($dataHa)) {
         if (gettype($dataHa) == "object") {
             $msg = $dataHa->getMessage();
             return $msg;
         }
         // header("Location: $error?err_msg=$msg");
     } else {
         switch ($mode) {
             case 3:
                 // username, link to chat
                 // should read from chat table...
                 break;
             case 2:
                 // username, link to msg & tutor
                 if (count($dataHa)) {
                     //$online_usersAr = array();
                     $online_users_idAr = array();
                     foreach ($dataHa as $user) {
                         $user_id = $user[2];
                         if (!in_array($user_id, $online_users_idAr)) {
                             if ($sess_id_user == $user_id) {
                                 // ora bisogna controllare che la sessione sia la stessa
                                 $user_session_id = $user[3];
                                 if ($user_session_id == session_id()) {
                                     $online_users_idAr[] = $user_id;
                                     //$online_usersAr[$user_id]['user']= "******"img/_student.png\" border=\"0\"> ".translateFN("io");
                                     $online_usersAr[] = translateFN("io");
                                     // if we don't want to show this user:
                                     //$online_usersAr[$user_id]['user']= "";
                                 } else {
                                     $online_users_idAr[] = $user_id;
                                     //$online_usersAr[$user_id]['user']= "******"img/_student.png\" border=\"0\"> ".translateFN("Un utente con i tuoi dati &egrave; gi&agrave; connesso!");
                                     $online_usersAr[] = translateFN("Un utente con i tuoi dati &egrave; gi&agrave; connesso!");
                                 }
                                 $currentUserObj = $_SESSION['sess_userObj'];
                                 $current_profile = $currentUserObj->getType();
                                 if ($current_profile == AMA_TYPE_STUDENT) {
                                 }
                             } else {
                                 $userObj = MultiPort::findUser($user_id);
                                 if (gettype($userObj) == 'object') {
                                     //instanceof ADAUser) { // && $userObj->getStatus() == ADA_STATUS_REGISTERED) {
                                     //                                    $userObj = new User($user_id);
                                     $online_users_idAr[] = $user_id;
                                     $id_profile = $userObj->getType();
                                     //$userObj->tipo;
                                     if ($id_profile == AMA_TYPE_TUTOR) {
                                         $online_usersAr[] = $userObj->username . " |<a href=\"{$http_root_dir}/comunica/send_message.php?destinatari=" . $userObj->username . "\"  target=\"_blank\">" . translateFN("scrivi un messaggio") . "</a> |" . " <a href=\"view.php?id_node={$sess_id_node}&guide_user_id=" . $userObj->getId() . "\"> " . translateFN("segui") . "</a> |";
                                         //$online_usersAr[$user_id]['user']= "******"img/_tutor.png\" border=\"0\"> ".$userObj->username. " |<a href=\"$http_root_dir/comunica/send_message.php?destinatari=". $userObj->username."\"  target=\"_blank\">".translateFN("scrivi un messaggio")."</a> |";
                                         //$online_usersAr[$user_id]['user'].= " <a href=\"view.php?id_node=$sess_id_node&guide_user_id=".$userObj->id."\"> ".translateFN("segui")."</a> |";
                                     } else {
                                         // STUDENT
                                         // $online_usersAr[$user_id]['user']= "******"student.php?op=list_students&id_course_instance=$sess_id_course_instance&id_course=$sess_id_course\"><img src=\"img/_student.png\" border=0></a> ";
                                         $online_usersAr[] = $userObj->username . " |<a href=\"{$http_root_dir}/comunica/send_message.php?destinatari=" . $userObj->username . "\"  target=\"_blank\">" . translateFN("scrivi un messaggio") . "</a> |";
                                         //                                            $online_usersAr[$user_id]['user']= "******"img/_student.png\" border=\"0\"> ";
                                         //                                            $online_usersAr[$user_id]['user'].= $userObj->username. " |<a href=\"$http_root_dir/comunica/send_message.php?destinatari=". $userObj->username."\"  target=\"_blank\">".translateFN("scrivi un messaggio")."</a> |";
                                     }
                                 }
                             }
                         }
                     }
                     return $online_usersAr;
                 } else {
                     return translate("Nessuno");
                 }
                 break;
             case 1:
                 // username, mail and timestemp // @FIXME
                 if (count($dataHa)) {
                     //$online_usersAr = array();
                     $online_users_idAr = array();
                     foreach ($dataHa as $user) {
                         $user_id = $user[2];
                         if (!in_array($user_id, $online_users_idAr)) {
                             $userObj = new User($user_id);
                             $time = date("H:i:s", $user[1]);
                             $online_users_idAr[] = $user_id;
                             $online_usersAr[$user_id]['user'] = $userObj->username;
                             $online_usersAr[$user_id]['email'] = $userObj->email;
                             $online_usersAr[$user_id]['time'] = $time;
                         }
                     }
                     return $online_usersAr;
                 } else {
                     return translateFN("Nessuno");
                 }
                 break;
             case 0:
             default:
                 if (count($dataHa)) {
                     $online_users_idAr = array();
                     foreach ($dataHa as $user) {
                         $user_id = $user[2];
                         if (!in_array($user_id, $online_users_idAr)) {
                             $online_users_idAr[] = $user_id;
                         }
                     }
                     return count($online_users_idAr) . " " . translateFN("studente/i");
                     // only number of users online
                 } else {
                     return translateFN("Nessuno");
                 }
         }
     }
 }
コード例 #16
0
ファイル: save_registration.php プロジェクト: eguicciardi/ada
$languages = Translator::getLanguagesIdAndName();
$retArray = array();
$title = translateFN('Salvataggio');
/**
 * Set the $editUserObj depending on logged user type
 */
$editUserObj = null;
switch ($userObj->getType()) {
    case AMA_TYPE_STUDENT:
    case AMA_TYPE_AUTHOR:
        $editUserObj =& $userObj;
        break;
    case AMA_TYPE_SWITCHER:
        $userId = DataValidator::is_uinteger($_POST['id_utente']);
        if ($userId !== false) {
            $editUserObj = MultiPort::findUser($userId);
        }
        break;
}
if (!is_null($editUserObj) && isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == 'POST') {
    $form = new UserProfileForm($languages);
    $form->fillWithPostData();
    if ($form->isValid()) {
        $user_layout = $_POST['layout'];
        $editUserObj->fillWithArrayData($_POST);
        // save extra datas if it has been forced
        if (isset($_POST['forceSaveExtra']) && $editUserObj->hasExtra()) {
            $editUserObj->setExtras($_POST);
        }
        MultiPort::setUser($editUserObj, array(), true, ADAUser::getExtraTableName());
        /**
コード例 #17
0
 public static function getEventProposalForm($id_user, $data = array(), $errors = array(), $tester = NULL)
 {
     $error_messages = array(ADA_EVENT_PROPOSAL_ERROR_DATE_FORMAT => translateFN('Attenzione: il formato della data non è corretto.'), ADA_EVENT_PROPOSAL_ERROR_DATE_IN_THE_PAST => translateFN("Attenzione: la data e l'ora proposte per l'appuntamento sono antecedenti a quelle attuali."), ADA_EVENT_PROPOSAL_ERROR_DATE_IN_USE => translateFN('Attenzione: è già presente un appuntamento in questa data e ora'), ADA_EVENT_PROPOSAL_ERROR_SUBJECT => translateFN('The given event subject is not valid.'));
     if (isset($data['testo'])) {
         //$regexp  = '/<date>([0-9]{2}\/[0-9]{2}\/[0-9]{4})<\/date>(?:\s)*<time>([0-9]{2}:[0-9]{2})<\/time>/';
         //      $regexp  = '/<date>([0-9\/]+)<\/date>(?:\s)*<time>([0-9]{2}:[0-9]{2})<\/time>/';
         //      preg_match_all($regexp, $data['testo'], $matches);
         //      $dates = $matches[1];
         //      $times = $matches[2];
         $datetimesAr = ADAEventProposal::extractDateTimesFromEventProposalText($data['testo']);
         //      $regexp = '/<notes>(.*)<\/notes>/';
         //      preg_match($regexp, $data['testo'], $matches);
         //      $practitioner_notes = $matches[1];
         $practitioner_notes = ADAEventProposal::extractNotesFromEventProposalText($data['testo']);
         //      $regexp = '/<id_course_instance>(.*)<\/id_course_instance>/';
         //      preg_match($regexp, $data['testo'], $matches);
         //      $course_instance = $matches[1];
         $course_instance = ADAEventProposal::extractIdCourseInstanceFromEventProposalText($data['testo']);
         $modify = TRUE;
     } else {
         $modify = FALSE;
     }
     $form = CDOMElement::create('form', 'id:send_event_proposal_form, name:send_event_proposal_form, action:send_event_proposal.php, method:post');
     $idcourseinstance = CDOMElement::create('hidden', 'id:id_course_instance, name:id_course_instance');
     if ($modify) {
         $idcourseinstance->setAttribute('value', $course_instance);
     } else {
         $idcourseinstance->setAttribute('value', $_GET['id_course_instance']);
     }
     $form->addChild($idcourseinstance);
     $tutoredUserObj = MultiPort::findUser($id_user);
     $tutored_user_info = CDOMElement::create('div', 'class:proposal_title');
     $tutored_user_info->addChild(new CText(sprintf(translateFN("Proposta di appuntamento per l'utente: %s"), $tutoredUserObj->nome . ' ' . $tutoredUserObj->cognome)));
     $form->addChild($tutored_user_info);
     $subject = CDOMElement::create('div', 'class:proposal_title');
     //    if($modify) {
     //      $event_title = ADAEventProposal::removeEventToken($data['titolo']);
     //      $subject->addChild(new CText($event_title));
     //      $input = CDOMElement::create('hidden','id:subject, name:subject');
     //      $input->setAttribute('value',$data['titolo']);
     //    }
     //    else {
     //      if(is_array($errors) && isset($errors['subject'])) {
     //        $subject_error = CDOMElement::create('div','class:error');
     //        $subject_error->addChild(new CText($error_messages[$errors['subject']]));
     //        $subject->addChild($subject_error);
     //      }
     //      $input = CDOMElement::create('text','id:subject, name:subject,maxlength:255, size:60');
     //    }
     if (is_array($errors) && isset($errors['subject'])) {
         $subject_error = CDOMElement::create('div', 'class:error');
         $subject_error->addChild(new CText($error_messages[$errors['subject']]));
         $subject->addChild($subject_error);
         $subject->addChild(new CText(translateFN('Oggetto')));
         $input = CDOMElement::create('text', 'id:subject, name:subject,maxlength:255, size:60');
     } else {
         if ($modify) {
             $event_title = ADAEventProposal::removeEventToken($data['titolo']);
             $subject->addChild(new CText(translateFN('Oggetto')));
             $subject->addChild(new CText($event_title));
             $input = CDOMElement::create('hidden', 'id:subject, name:subject');
             $input->setAttribute('value', $data['titolo']);
         } else {
             $subject->addChild(new CText(translateFN('Oggetto')));
             $input = CDOMElement::create('text', 'id:subject, name:subject,maxlength:255, size:60');
         }
     }
     $subject->addChild($input);
     $offset = 0;
     if ($tester === NULL) {
         $tester_TimeZone = SERVER_TIMEZONE;
     } else {
         $tester_TimeZone = MultiPort::getTesterTimeZone($tester);
         $offset = get_timezone_offset($tester_TimeZone, SERVER_TIMEZONE);
     }
     $now = time() + $offset;
     $zone = translateFN("Time zone:") . " " . $tester_TimeZone . " " . translateFN("actual time: ") . ts2tmFN($now);
     $timezone = CDOMElement::create('div', 'class:proposal_zone');
     $timezone->addChild(new CText($zone));
     $type = CDOMElement::create('div', 'class:proposal_type');
     $select = CDOMElement::create('select', 'id:type, name:type');
     $option1 = CDOMElement::create('option', 'value:' . ADA_CHAT_EVENT);
     $option1->addChild(new CText(translateFN('Appuntamento in chat')));
     if ($modify && $data['flags'] & ADA_CHAT_EVENT) {
         $option1->setAttribute('selected', 'selected');
     }
     $option2 = CDOMElement::create('option', 'value:' . ADA_VIDEOCHAT_EVENT);
     $option2->addChild(new CText(translateFN('Appuntamento in videochat')));
     if ($modify && $data['flags'] & ADA_VIDEOCHAT_EVENT) {
         $option2->setAttribute('selected', 'selected');
     }
     $option3 = CDOMElement::create('option', 'value:' . ADA_PHONE_EVENT);
     $option3->addChild(new CText(translateFN('Appuntamento telefonico')));
     if ($modify && $data['flags'] & ADA_PHONE_EVENT) {
         $option3->setAttribute('selected', 'selected');
     }
     $option4 = CDOMElement::create('option', 'value:' . ADA_IN_PLACE_EVENT);
     $option4->addChild(new CText(translateFN('Appuntamento in presenza')));
     if ($modify && $data['flags'] & ADA_IN_PLACE_EVENT) {
         $option4->setAttribute('selected', 'selected');
     }
     $select->addChild($option1);
     $select->addChild($option2);
     $select->addChild($option3);
     $select->addChild($option4);
     $type->addChild(new CText(translateFN('Tipo di appuntamento')));
     $type->addChild($select);
     $date1 = CDOMElement::create('div', 'class:proposed_date');
     if (is_array($errors) && isset($errors['date1'])) {
         $date_error = CDOMElement::create('div', 'class:error');
         $date_error->addChild(new CText($error_messages[$errors['date1']]));
         $date1->addChild($date_error);
     }
     $input1 = CDOMElement::create('text', 'id:date1, name:date1,maxlength:10, size:10,  class:date_input');
     if ($modify) {
         $input1->setAttribute('value', $datetimesAr[0]['date']);
         $time1 = self::getEventProposalFormHoursSelect('time1', $datetimesAr[0]['time']);
     } else {
         $time1 = self::getEventProposalFormHoursSelect('time1');
     }
     $date1->addChild(new CText(translateFN('Prima proposta in data (dd/mm/yyyy)')));
     $date1->addChild($input1);
     $calendar_icon = CDOMElement::create('img', 'src:img/cal.png');
     $calendar_icon->setAttribute('alt', translateFN('Scegli una data'));
     $calendar1 = CDOMElement::create('a');
     $calendar1->setAttribute('href', "javascript:show_calendar('document.send_event_proposal_form.date1', document.send_event_proposal_form.date1.value);");
     $calendar1->addChild($calendar_icon);
     //new CText(translateFN('Scegli')));
     $date1->addChild($calendar1);
     $date1->addChild(new CText(translateFN('alle ore')));
     $date1->addChild($time1);
     $date2 = CDOMElement::create('div', 'class:proposed_date');
     if (is_array($errors) && isset($errors['date2'])) {
         $date_error = CDOMElement::create('div', 'class:error');
         $date_error->addChild(new CText($error_messages[$errors['date2']]));
         $date2->addChild($date_error);
     }
     $input2 = CDOMElement::create('text', 'id:date2, name:date2,maxlength:10, size:10, class:date_input');
     if ($modify) {
         $input2->setAttribute('value', $datetimesAr[1]['date']);
         $time2 = self::getEventProposalFormHoursSelect('time2', $datetimesAr[1]['time']);
     } else {
         $time2 = self::getEventProposalFormHoursSelect('time2');
     }
     $date2->addChild(new CText(translateFN('Seconda proposta in data (dd/mm/yyyy)')));
     $date2->addChild($input2);
     $calendar2 = CDOMElement::create('a');
     $calendar2->setAttribute('href', "javascript:show_calendar('document.send_event_proposal_form.date2', document.send_event_proposal_form.date2.value);");
     $calendar2->addChild($calendar_icon);
     //new CText(translateFN('Scegli')));
     $date2->addChild($calendar2);
     $date2->addChild(new CText(translateFN('alle ore')));
     $date2->addChild($time2);
     $date3 = CDOMElement::create('div', 'class:proposed_date');
     if (is_array($errors) && isset($errors['date3'])) {
         $date_error = CDOMElement::create('div', 'class:error');
         $date_error->addChild(new CText($error_messages[$errors['date3']]));
         $date3->addChild($date_error);
     }
     $input3 = CDOMElement::create('text', 'id:date3, name:date3,maxlength:10, size:10, class:date_input');
     if ($modify) {
         $input3->setAttribute('value', $datetimesAr[2]['date']);
         $time3 = self::getEventProposalFormHoursSelect('time3', $datetimesAr[2]['time']);
     } else {
         $time3 = self::getEventProposalFormHoursSelect('time3');
     }
     $date3->addChild(new CText(translateFN('Terza proposta in data (dd/mm/yyyy)')));
     $date3->addChild($input3);
     $calendar3 = CDOMElement::create('a');
     $calendar3->setAttribute('href', "javascript:show_calendar('document.send_event_proposal_form.date3', document.send_event_proposal_form.date3.value);");
     $calendar3->addChild($calendar_icon);
     //new CText(translateFN('Scegli')));
     $date3->addChild($calendar3);
     $date3->addChild(new CText(translateFN('alle ore')));
     $date3->addChild($time3);
     $notes = CDOMElement::create('div');
     $input4 = CDOMElement::create('textarea', 'id:notes, name:notes');
     if ($modify) {
         $input4->addChild(new CText($practitioner_notes));
     }
     $notes->addChild(new CText(translateFN('Note') . '<br />'));
     $notes->addChild($input4);
     $user_id = CDOMElement::create('hidden', 'name:id_user, value:' . $id_user);
     $buttons = CDOMElement::create('div', 'id:buttons');
     $submit = CDOMElement::create('submit', 'id:submit,name:submit, value:' . translateFN('Invia'));
     $reset = CDOMElement::create('reset');
     $buttons->addChild($submit);
     $buttons->addChild($reset);
     $form->addChild($subject);
     $form->addChild($type);
     $form->addChild($timezone);
     $form->addChild($date1);
     $form->addChild($date2);
     $form->addChild($date3);
     $form->addChild($notes);
     $form->addChild($user_id);
     $form->addChild($buttons);
     return $form;
 }