コード例 #1
0
 public function getEndDate()
 {
     if ($this->data_fine > 0) {
         return ts2dFN($this->data_fine);
     }
     return '';
 }
コード例 #2
0
ファイル: utilities.inc.php プロジェクト: eguicciardi/ada
function today_dateFN()
{
    $now = time();
    return ts2dFN($now);
}
コード例 #3
0
 function getExecutionDate()
 {
     if (is_array($this->risposta)) {
         return ts2dFN($this->risposta['data_visita']);
     }
 }
コード例 #4
0
ファイル: htmladmoutput.inc.php プロジェクト: eguicciardi/ada
 function course_instance_edit_form($file_action, $file_back, $instance_ha, $id_instance, $id_corso)
 {
     // inizializzazione variabili
     $val = "";
     $str = "";
     // Data d'inizio prevista
     $fields["add"][] = "instance_ha[data_inizio_previsto]";
     $names["add"][] = "data inizio prevista (GG/MM/AAAA)";
     $edittypes["add"][] = "text";
     $necessary["add"][] = "yes";
     if ($instance_ha['data_inizio_previsto'] == 0 or empty($instance_ha['data_inizio_previsto'])) {
         $val = "";
     } else {
         $val = ts2dFN($instance_ha['data_inizio_previsto']);
     }
     $values["add"][] = $val;
     $options["add"][] = "";
     $maxsize["add"][] = 22;
     // Durata
     $fields["add"][] = "instance_ha[durata]";
     $names["add"][] = "durata in giorni";
     $edittypes["add"][] = "text";
     $necessary["add"][] = "";
     if ($instance_ha['durata'] == 0 or empty($instance_ha['durata'])) {
         $val = "";
     } else {
         $val = $instance_ha['durata'];
     }
     $values["add"][] = $val;
     $options["add"][] = "";
     $maxsize["add"][] = 12;
     // Data di inizio
     $fields["add"][] = "instance_ha[data_inizio]";
     $names["add"][] = "data inizio (GG/MM/AAAA)";
     $edittypes["add"][] = "text";
     $necessary["add"][] = "";
     if ($instance_ha['data_inizio'] == 0 or empty($instance_ha['data_inizio'])) {
         $val = "";
     } else {
         $val = ts2dFN($instance_ha['data_inizio']);
     }
     $values["add"][] = $val;
     $options["add"][] = "";
     $maxsize["add"][] = 22;
     // id_instance
     $fields["add"][] = "id_instance";
     $names["add"][] = "id";
     $edittypes["add"][] = "hidden";
     $necessary["add"][] = "";
     $values["add"][] = "{$id_instance}";
     $options["add"][] = "";
     $maxsize["add"][] = "";
     // id_corso
     $fields["add"][] = "id_corso";
     $names["add"][] = "id_corso";
     $edittypes["add"][] = "hidden";
     $necessary["add"][] = "";
     $values["add"][] = $id_corso;
     $options["add"][] = "";
     $maxsize["add"][] = "";
     // creazione del form
     $str = MakeForm($fields, $names, $edittypes, $necessary, $values, $options, $maxsize, $file_action, "add", false, true);
     // scrittura stringa back
     $str .= $this->go_file_back($file_back, translateFN("Indietro"));
     return $str;
 }
コード例 #5
0
ファイル: get_userDetails.php プロジェクト: eguicciardi/ada
     } else {
         $nodeNumber = 0;
         $activitiesNumber = 0;
     }
 } else {
     $instanceNumber = 0;
     $nodeNumber = 0;
     $activitiesNumber = 0;
 }
 if (isset($course['data_creazione']) && !is_null($course['data_creazione']) && intval($course['data_creazione'] > 0)) {
     $creationDate = ts2dFN($course['data_creazione']);
 } else {
     $creationDate = '-';
 }
 if (isset($course['data_pubblicazione']) && !is_null($course['data_pubblicazione']) && intval($course['data_pubblicazione'] > 0)) {
     $publicationDate = ts2dFN($course['data_pubblicazione']);
 } else {
     $publicationDate = '-';
 }
 if (isset($course['tipo_servizio']) && isset($_SESSION['service_level'])) {
     $serviceType = $_SESSION['service_level'][intval($course['tipo_servizio'])];
 } else {
     $serviceType = 'Corso Online';
 }
 $span_serviceType = CDOMElement::create('span');
 $span_serviceType->setAttribute('class', 'serviceType');
 $span_serviceType->addChild(new CText($serviceType));
 if (isset($course['duration_hours'])) {
     $duration = $course['duration_hours'];
 } else {
     $duration = 0;
コード例 #6
0
ファイル: ama.inc.php プロジェクト: eguicciardi/ada
 public function _get_user_info($id)
 {
     $db =& $this->getConnection();
     if (AMA_DB::isError($db)) {
         return $db;
     }
     // get a row from table UTENTE
     $query = "select nome, cognome, tipo, e_mail AS email, telefono, username, layout, " . "indirizzo, citta, provincia, nazione, codice_fiscale, birthdate, sesso, " . "telefono, stato, lingua, timezone, cap, matricola, avatar, birthcity, birthprovince  from utente where id_utente={$id}";
     $res_ar = $db->getRow($query, NULL, AMA_FETCH_ASSOC);
     if (AMA_DB::isError($res_ar)) {
         return new AMA_Error(AMA_ERR_GET);
     }
     if (empty($res_ar) or is_object($res_ar)) {
         return new AMA_Error(AMA_ERR_NOT_FOUND);
     }
     $res_ar['id'] = $id;
     if (isset($res_ar['birthdate'])) {
         $res_ar['birthdate'] = ts2dFN($res_ar['birthdate']);
     }
     return $res_ar;
 }
コード例 #7
0
 function get_class_report_from_dbFN($id_course, $id_course_instance)
 {
     // last data from db tble
     $dh = $GLOBALS['dh'];
     $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_course_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);
     /**
      * @author giorgio 27/ott/2014
      * from now on, passing a null date to read_class_data 
      * will get the most updated class report, so it's
      * safe to get rid of the following 2 lines of code
      *  
      */
     //         $ymdhms = today_dateFN();
     //         $utime = dt2tsFN($ymdhms);
     $utime = null;
     $report_dataHa = $this->read_class_data($id_course, $id_course_instance, $utime);
     // vito, 16 luglio 2008, gestione dell'errore relativo alla chiamata a read_class_data
     if (AMA_DataHandler::isError($report_dataHa)) {
         $msg = $report_dataHa->getMessage();
         return $msg;
     }
     $num_student = count($report_dataHa);
     if ($num_student > 0) {
         /*
          * vito, 27 mar 2009. Add links to table data.
          */
         $totalHistory = 0;
         $totalExercies = 0;
         $totalExerciesMax = 0;
         $totalTest = 0;
         $totalTestMax = 0;
         $totalSurvey = 0;
         $totalSurveyMax = 0;
         $totalAddedNodes = 0;
         $totalReadNotes = 0;
         $totalMessageCountIn = 0;
         $totalMessageCountOut = 0;
         $totalChat = 0;
         $totalBookmarks = 0;
         $totalIndex = 0;
         $totalLevel = 0;
         $row = -1;
         $returnArray = array();
         if (isset($report_dataHa['report_generation_date'])) {
             $report_generation_TS = $report_dataHa['report_generation_date'];
             unset($report_dataHa['report_generation_date']);
         } else {
             $report_generation_TS = null;
         }
         foreach ($report_dataHa as $currentReportRow) {
             // returnArray elements order (keys) MUST be
             // the same as returned by get_class_report_from_db
             $returnArray[++$row]['id'] = $currentReportRow['id_stud'];
             $returnArray[$row]['student'] = '<a href="tutor.php?op=zoom_student&id_student=' . $currentReportRow['id_stud'] . '&id_course=' . $id_course . '&id_instance=' . $id_course_instance . '">' . $currentReportRow['student'] . '</a>';
             $returnArray[$row]['history'] = '<a href="tutor_history.php?id_student=' . $currentReportRow['id_stud'] . '&id_course=' . $id_course . '&id_course_instance=' . $id_course_instance . '">' . $currentReportRow['visits'] . '</a>';
             $returnArray[$row]['last_access'] = '<a href="tutor_history_details.php?period=1&id_student=' . $currentReportRow['id_stud'] . '&id_course=' . $id_course . '&id_course_instance=' . $id_course_instance . '">' . substr(ts2dFN($currentReportRow['date']), 0, -5) . '</a>';
             $returnArray[$row]['exercises'] = '<a href="tutor_exercise.php?id_student=' . $currentReportRow['id_stud'] . '&id_course_instance=' . $id_course_instance . '" class="dontwrap">' . $currentReportRow['score'] . ' ' . translateFN('su') . ' ' . $currentReportRow['exercises'] * ADA_MAX_SCORE . '</a>';
             if (MODULES_TEST) {
                 $st_score_test = $currentReportRow['score_test'];
                 $st_score_norm_test = str_pad($st_score_test, 5, "0", STR_PAD_LEFT);
                 $st_exer_number_test = $currentReportRow['exercises_test'];
                 $returnArray[$row]['exercises_test'] = '<!-- ' . $st_score_norm_test . ' --><a href="' . MODULES_TEST_HTTP . '/tutor.php?op=test&id_course_instance=' . $id_course_instance . '&id_course=' . $id_course . '&id_student=' . $currentReportRow['id_stud'] . '" class="dontwrap">' . $st_score_test . ' ' . translateFN('su') . ' ' . $st_exer_number_test . '</a>';
                 $st_score_survey = $currentReportRow['score_survey'];
                 $st_score_norm_survey = str_pad($st_score_survey, 5, "0", STR_PAD_LEFT);
                 $st_exer_number_survey = $currentReportRow['exercises_survey'];
                 $returnArray[$row]['exercises_survey'] = '<!-- ' . $st_score_norm_survey . ' --><a href="' . MODULES_TEST_HTTP . '/tutor.php?op=survey&id_course_instance=' . $id_course_instance . '&id_course=' . $id_course . '&id_student=' . $currentReportRow['id_stud'] . '" class="dontwrap">' . $st_score_survey . ' ' . translateFN('su') . ' ' . $st_exer_number_survey . '</a>';
             }
             $returnArray[$row]['added_notes'] = '<a href="tutor.php?op=student_notes&id_student=' . $currentReportRow['id_stud'] . '&id_instance=' . $id_course_instance . '">' . $currentReportRow['notes_out'] . '</a>';
             $returnArray[$row]['read_notes'] = $currentReportRow['notes_in'] > 0 ? $currentReportRow['notes_in'] : '-';
             $returnArray[$row]['message_count_in'] = $currentReportRow['msg_in'];
             $returnArray[$row]['message_count_out'] = $currentReportRow['msg_out'];
             $returnArray[$row]['chat'] = $currentReportRow['chat'];
             $returnArray[$row]['bookmarks'] = $currentReportRow['bookmarks'];
             $returnArray[$row]['index'] = $currentReportRow['indice_att'];
             $returnArray[$row]['level'] = '<span id="studentLevel_' . $currentReportRow['id_stud'] . '">' . $currentReportRow['level'] . '</span>';
             $forceUpdate = false;
             $linksHtml = $this->generateLevelButtons($currentReportRow['id_stud'], $forceUpdate);
             $returnArray[$row]['level_plus'] = !is_null($linksHtml) ? $linksHtml : '-';
             // UPDATE TOTALS
             $totalHistory += $currentReportRow['visits'];
             $totalExercies += $currentReportRow['exercises'];
             $totalExerciesMax += $currentReportRow['exercises'] * ADA_MAX_SCORE;
             $totalTest += $currentReportRow['score_test'];
             $totalTestMax += $currentReportRow['exercises_test'];
             $totalSurvey += $currentReportRow['score_survey'];
             $totalSurveyMax += $currentReportRow['exercises_survey'];
             $totalAddedNodes += $currentReportRow['notes_out'];
             $totalReadNotes += $currentReportRow['notes_in'];
             $totalMessageCountIn += $currentReportRow['msg_in'];
             $totalMessageCountOut += $currentReportRow['msg_out'];
             $totalChat += $currentReportRow['chat'];
             $totalBookmarks += $currentReportRow['bookmarks'];
             $totalIndex += $currentReportRow['indice_att'];
             $totalLevel += $currentReportRow['level'];
         }
         // generate and add footer (average) row
         $total = ++$row;
         $returnArray[++$row] = array('id' => '-', 'student' => translateFN("Media"), 'history' => round($totalHistory / $total, 2), 'last_access' => '-', 'exercises' => round($totalExercies / $total, 2) . ' ' . translateFN('su') . ' ' . floor($totalExerciesMax / $total));
         if (MODULES_TEST) {
             $returnArray[$row]['exercises_test'] = round($totalTest / $total, 2) . ' ' . translateFN('su') . ' ' . floor($totalTestMax / $total);
             $returnArray[$row]['exercises_survey'] = round($totalSurvey / $total, 2) . ' ' . translateFN('su') . ' ' . floor($totalSurveyMax / $total);
         }
         $returnArray[$row]['added_notes'] = round($totalAddedNodes / $total, 2);
         $returnArray[$row]['read_notes'] = round($totalReadNotes / $total, 2);
         $returnArray[$row]['message_count_in'] = round($totalMessageCountIn / $total, 2);
         $returnArray[$row]['message_count_out'] = round($totalMessageCountOut / $total, 2);
         $returnArray[$row]['chat'] = round($totalChat / $total, 2);
         $returnArray[$row]['bookmarks'] = round($totalBookmarks / $total, 2);
         $returnArray[$row]['index'] = round($totalIndex / $total, 2);
         $returnArray[$row]['level'] = '<span id="averageLevel">' . round($totalLevel / $total, 2) . '</span>';
         $returnArray[$row]['level_plus'] = '-';
         // TABLE LABELS
         $table_labels[0] = $this->generate_class_report_header();
         /**
          * @author giorgio 27/ott/2014
          * 
          * unset the unwanted columns data and labels. unwanted cols are defined in config/config_class_report.inc.php
          */
         $arrayToUse = 'reportHTMLColArray';
         $this->clean_class_reportFN($arrayToUse, $table_labels, $returnArray);
         return array('report_generation_date' => $report_generation_TS) + array_merge($table_labels, $returnArray);
     }
     return null;
 }
コード例 #8
0
ファイル: author.php プロジェクト: eguicciardi/ada
    /*
     * Qui, se codice di errore == AMA_ERR_NOT_FOUND, tutto ok, semplicemente non 
     * ci sono corsi.
     * Altrimenti ADA_Error
     */
    $err_msg = $dataHa->getMessage();
    //header("Location: $error?err_msg=$msg");
} else {
    // courses array
    $course_dataHa = array();
    foreach ($dataHa as $course) {
        // mydebug(__LINE__,__FILE__,array('Course'=>$course[1]));
        $id_course = $course[0];
        $nome = $course[1];
        $titolo = $course[2];
        $data = ts2dFN($course[3]);
        $media_path = $course[4];
        if (!$media_path) {
            $media_path = translateFN("default");
        }
        $id_nodo_iniziale = $course[5];
        // vito, 8 apr 2009
        $confirm_dialog_message = translateFN('Sei sicuro di voler eliminare questo corso?');
        $onclick = "confirmCriticalOperationBeforeRedirect('{$confirm_dialog_message}','delete_course.php?id_course={$id_course}');";
        $row = array(translateFN('Nome') => $nome, translateFN('Titolo') => $titolo, translateFN('Data') => $data, translateFN('Path') => $media_path, translateFN('Naviga') => "<a href=\"../browsing/view.php?id_course={$id_course}&id_node=" . $id_course . "_" . $id_nodo_iniziale . "\"><img src=\"img/timon.png\" border=0></a>", translateFN('Report') => "<a href=\"author_report.php?id_course={$id_course}\"><img src=\"img/report.png\" border=0></a>", translateFN('Aggiungi') => "<a href=\"addnode.php?id_course={$id_course}\"><img src=\"img/_nodo.png\" border=0></a>");
        array_push($course_dataHa, $row);
    }
    $caption = translateFN("Corsi inviati e attivi il") . " {$ymdhms}";
    $tObj = BaseHtmlLib::tableElement('id:authorTable, class:doDataTable', array_keys(reset($course_dataHa)), $course_dataHa, null, $caption);
    $tObj->setAttribute('class', 'default_table doDataTable');
    $total_course_data = $tObj->getHtml();
コード例 #9
0
ファイル: course_instance.php プロジェクト: eguicciardi/ada
         $span_selected->setAttribute('class', 'hidden_status');
         $span_selected->addChild(new CText(translateFN("Terminato")));
         break;
 }
 $select->addChild($option_Presubscribed);
 $select->addChild($option_Subscribed);
 $select->addChild($option_Removed);
 $select->addChild($option_Visitor);
 $select->addChild($option_Completed);
 $select->addChild($option_Terminated);
 $select->setAttribute('onchange', 'saveStatus(this)');
 $livello = $dh->_get_student_level($user->getSubscriberId(), $instanceId);
 if (is_int($user->getSubscriptionDate())) {
     $data_iscrizione = '-';
 } else {
     $data_iscrizione = ts2dFN($user->getSubscriptionDate());
 }
 //            $span_idUser = CDOMElement::create('span');
 //            $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;
コード例 #10
0
ファイル: multiport.inc.php プロジェクト: eguicciardi/ada
 /**
  * get all services to which a given user has subscribed
  * @param  $ADAUser $userObj
  * @param  $field_list_ar array
  * @param  $clause string
  * @return $sub_course_dataHa array
  */
 public static function find_sub_services_data(ADAGenericUser $userObj, $field_ar, $clause, $orderBy = 'service')
 {
     $common_dh = $GLOBALS['common_dh'];
     $sub_course_dataHa = array();
     $user_id = $userObj->getId();
     /*
      * Obtain tester names
      */
     $tester_names = array();
     /*    foreach ($userObj->getTesters() as $tester) {
           $tester_dataHa = $common_dh->get_tester_info_from_pointer($tester);
           $tester_names[$tester] = $tester_dataHa[1];
         }
     */
     // foreach($userObj->getTesters() as $tester) { // only providers in which user is subscribed
     /*  $testers = $common_dh->get_all_testers(); // all providers
         foreach($testers as $testerItem){
       	  $tester = $testerItem['puntatore'];
     */
     $testerPointersAr = $common_dh->get_testers_for_user($user_id);
     // providers assigned to the user
     foreach ($testerPointersAr as $tester) {
         // ADALogger::log("MultiPort::find_sub_services_data for tester: $tester");
         $tester_dataHa = $common_dh->get_tester_info_from_pointer($tester);
         $tester_city = $tester_dataHa[5];
         $tester_country = $tester_dataHa[6];
         $tester_names[$tester] = $tester_dataHa[1];
         $tester_dsn = self::getDSN($tester);
         if ($tester_dsn != null) {
             //$tester_dataHa = $common_dh->get_tester_info_from_pointer($tester);
             //$tester_name = 'NOME TESTER';//$tester_dataHa[1];
             $tester_dh = AMA_DataHandler::instance($tester_dsn);
             if (!AMA_DataHandler::isError($tester_dh)) {
                 // versioneche cicla solo sulle istanze cui è pre/iscritto
                 $all_instance = $tester_dh->course_instance_student_presubscribe_get_status($user_id);
                 //  versioneche cicla su tutte le istanze
                 /* FIXME: bisogna fare una JOIN su iscrizione e istanze_corso !
                     	    $all_instance = $tester_dh->course_instance_find_list($field_ar,$clause);
                 			var_dump($all_instance);
                 			*/
             } else {
                 //var_dump($tester_dh);
                 $all_instance = "";
             }
             if (is_array($all_instance)) {
                 foreach ($all_instance as $one_instance) {
                     //	  var_dump($one_instance);
                     $history_link = " - ";
                     $toc = " - ";
                     $info = "- ";
                     $tutor = translateFN("Not assigned");
                     $tutor_link = $tutor;
                     $now = AMA_DataHandler::date_to_ts("now");
                     $id_course_instance = $one_instance['istanza_corso'];
                     $status = $one_instance['status'];
                     $one_course_instance = $tester_dh->course_instance_get($id_course_instance, true);
                     // GESTIRE ERRORE
                     $id_course = $one_course_instance['id_corso'];
                     $data_inizio = $one_course_instance['data_inizio'];
                     $durata = $one_course_instance['durata'];
                     // NOTE: qui sarebbe utile invece il conto dei giorni restanti...
                     $data_inizio_previsto = $one_course_instance['data_inizio_previsto'];
                     $data_fine = $one_course_instance['data_fine'];
                     $service_completed = $data_fine < $now;
                     $sub_courses = $tester_dh->get_subscription($user_id, $id_course_instance);
                     //      if ($sub_courses['tipo'] == 2) { introducing status 3 (removed) and 4 (visitors)
                     if (!AMA_dataHandler::isError($sub_courses)) {
                         //    if (($sub_courses['tipo'] == ADA_STATUS_SUBSCRIBED) OR ($sub_courses['tipo'] == 4)) {
                         /* hack: subscription state is not updated, so we use time from course instance data to show users' status*/
                         if ($service_completed && $sub_courses['tipo'] == ADA_SERVICE_SUBSCRIPTION_STATUS_ACCEPTED) {
                             $tipo = ADA_SERVICE_SUBSCRIPTION_STATUS_COMPLETED;
                         } else {
                             $tipo = $sub_courses['tipo'];
                         }
                         // filtering on completed services if $clause paratemer is passed
                         if (!$clause or $tipo != ADA_SERVICE_SUBSCRIPTION_STATUS_COMPLETED) {
                             //FIXME: we have to parse the clause !!!
                             $tutor_Id = $tester_dh->course_instance_tutor_get($id_course_instance);
                             if ($tutor_Id) {
                                 $tutorInfoHa = $tester_dh->get_tutor($tutor_Id);
                                 $tutor_link = '<a href="' . HTTP_ROOT_DIR . '/browsing/practitionerProfile.php?id=' . $tutor_Id . '">' . $tutorInfoHa['nome'] . ' ' . $tutorInfoHa['cognome'] . '</a>';
                             }
                             $course = $tester_dh->get_course($id_course);
                             if (is_array($course)) {
                                 $id_start = $id_course . "_" . $course['id_nodo_iniziale'];
                                 $home_label = translateFN("home");
                                 $titolo = translateFN($course['titolo']);
                                 $info = "<a href=" . $http_root_dir . "../info.php?id_course={$id_course}&norequest=1>{$titolo}</a>";
                                 $start_date = ts2dFN($data_inizio_previsto);
                             }
                             // mod steve 17/12/09 suspended while wating for  history module
                             // $history_link = "<a href='".HTTP_ROOT_DIR."/browsing/service_info.php?norequest=1&id_course=$id_course&id_course_instance=$id_course_instance'>$start_date</a>";
                             $nome = $course['nome'];
                             switch ($tipo) {
                                 case ADA_SERVICE_SUBSCRIPTION_STATUS_ACCEPTED:
                                     //ADA_STATUS_SUBSCRIBED:
                                     // mod steve 17/12/09 suspended while wating for  history module
                                     $history_link = "<a href='" . HTTP_ROOT_DIR . "/browsing/service_info.php?norequest=1&id_course={$id_course}&id_course_instance={$id_course_instance}'>{$start_date}</a> - " . ts2dFN($data_fine);
                                     // $history_link =  $start_date;
                                     $toc = "<a href='view.php?{$session_id_par}" . "id_course={$id_course}&id_node={$id_start}&id_course_instance={$id_course_instance}'>" . translateFN('Entra') . "</a>";
                                     break;
                                 case ADA_SERVICE_SUBSCRIPTION_STATUS_REQUESTED:
                                     //ADA_STATUS_PRESUBSCRIBED:
                                     // $toc = "<a href='view.php?$session_id_par"."id_course=$id_course&id_node=$id_start&id_course_instance=$id_course_instance'>".translateFN('Entra'). "</a>";
                                     $history_link = $start_date . " - " . ts2dFN($data_fine);
                                     break;
                                 case ADA_SERVICE_SUBSCRIPTION_STATUS_COMPLETED:
                                     $history_link = $start_date . " - " . ts2dFN($data_fine);
                                     break;
                                 case ADA_SERVICE_SUBSCRIPTION_STATUS_SUSPENDED:
                                     $history_link = $start_date . " - ";
                                     break;
                                 case ADA_SERVICE_SUBSCRIPTION_STATUS_UNDEFINED:
                                 default:
                                     // es ADA_STATUS_VISITOR = 4
                             }
                             //case
                             // subscription state
                             $subscription_state = subscriptionType2stringFN($tipo);
                             if ($orderBy == "country") {
                                 $row = array(translateFN('Country') => $tester_country . "/" . $tester_city, translateFN('Provider') => $tester_names[$tester], translateFN('Servizio') => $info, translateFN('Dettagli') => $toc, translateFN('Period') => $history_link, translateFN('Durata') => $durata, translateFN('E-practitioner') => $tutor_link, translateFN('Stato') => $subscription_state);
                             } else {
                                 // default
                                 $row = array(translateFN('Servizio') => $info, translateFN('Country') => $tester_country . "/" . $tester_city, translateFN('Provider') => $tester_names[$tester], translateFN('Dettagli') => $toc, translateFN('Period') => $history_link, translateFN('Durata') => $durata, translateFN('E-practitioner') => $tutor_link, translateFN('Stato') => $subscription_state);
                             }
                             // mydebug(__LINE__,__FILE__,$row);
                             array_push($sub_course_dataHa, $row);
                         } else {
                             //$sub_course_dataHa = ""; // translateFN("Nessuna iscrizione");
                         }
                     }
                     // if not completed
                 }
                 // foreach instance
             }
         }
     }
     // foreach er
     return $sub_course_dataHa;
 }
コード例 #11
0
ファイル: userCertificate.php プロジェクト: eguicciardi/ada
} 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) {
    $CodeFiscSentence = translateFN(' Codice Fiscale: ') . $codFisc;
}
if (!is_null($courseObj->getTitle()) && stripos($courseObj->getTitle(), 'NULL') === false && strlen($courseObj->getTitle()) > 0) {
    $mainSentence = '<strong>' . $courseObj->getTitle() . '</strong>';
}
$UserCertificateObj->set_course_instance_for_history($id_instance);
$user_historyObj = $UserCertificateObj->history;
$time = $user_historyObj->history_nodes_time_FN();
$timeSentence = translateFN('Monte ore frequentato: ') . '<strong>' . $time . translateFN(' ore </strong>');
$data_inizio = $courseInstanceObj->getStartDate();
if ($data_inizio != '') {
    $data_Sentence = translateFN('Data inizio corso: ') . '<strong>' . $data_inizio . '</strong>';
}
$testerAr = $common_dh->get_tester_info_from_id_course($courseObj->getId());
if (!is_null($testerAr['nome']) && stripos($testerAr['nome'], 'NULL') === false && strlen($testerAr['nome'])) {
    $providerSentence = translateFN('Provider che ha organizzato il corso: ') . '<strong>' . $testerAr['nome'] . '</strong>';
}
$currentData = ts2dFN(time());
$luogo = $testerAr['citta'];
$placeAndDate = $luogo . ' ' . $currentData;
$responsabile = $testerAr['responsabile'];
$signature = translateFN('Il Rappresentante Legale del Provider: ') . $responsabile;
$content_dataAr = array('logo' => $logo, 'title' => $title, 'logoProvider' => null, 'userFullName' => $userFullName, 'birthSentence' => $birthSentence, 'CodeFiscSentence' => $CodeFiscSentence, 'mainSentence' => $mainSentence, 'timeSentence' => $timeSentence, 'data_Sentence' => $data_Sentence, 'providerSentence' => $providerSentence, 'placeAndDate' => $placeAndDate, 'signature' => $signature);
ARE::render($layout_dataAr, $content_dataAr, ARE_PDF_RENDER, array('outputfile' => translateFN('Attestato') . '-[' . $codice_corso . ']-[' . $id_user . ']'));
コード例 #12
0
ファイル: index.php プロジェクト: eguicciardi/ada
                $linkshref->setAttribute('title', $title);
                $links[$j]->addChild($linkshref);
                // unset for next iteration
                unset($type);
            }
        }
        if (!empty($links)) {
            $linksul = CDOMElement::create('ul', 'class:ulactions');
            foreach ($links as $link) {
                $linksul->addChild($link);
            }
            $linksHtml = $linksul->getHtml();
        } else {
            $linksHtml = '';
        }
        $newsletterData[$i] = array($labels[0] => $newsletterAr['subject'], $labels[1] => ts2dFN($newsletterAr['date']), $labels[2] => $newsletterAr['draft'] == 1 ? translateFN('Sì') : translateFN('No'), $labels[3] => $isSending ? translateFN('Invio in corso') . '...' : count($sentDetails), $labels[4] => $linksHtml);
    }
    $historyTable = new Table();
    $historyTable->initTable('0', 'center', '1', '1', '90%', '', '', '', '', '1', '0', '', 'default', 'newsletterHistory');
    $historyTable->setTable($newsletterData, translateFN('Archivio Newsletter'), translateFN('Archivio Newsletter'));
    $newsletterIndexDIV->addChild($newButton);
    $newsletterIndexDIV->addChild(new CText($historyTable->getTable()));
    // if there are more than 10 rows, repeat the add new button below the table
    if ($i > 10) {
        $bottomButton = clone $newButton;
        $bottomButton->setAttribute('class', 'newButton bottom');
        $newsletterIndexDIV->addChild($bottomButton);
    }
} else {
    $newsletterIndexDIV->addChild(new CText(translateFN('Errore nella lettura dell\'archivio newsletter')));
}
コード例 #13
0
ファイル: node_report.php プロジェクト: eguicciardi/ada
$menu = '<a href="index.php">' . translateFN('home') . '</a><br>' . "<a href=\"../browsing/view.php?id_node={$id_node}\">" . translateFN('torna') . '</a><br>';
$status = translateFN('zoom di un nodo');
$help = translateFN('Da qui ogni autore di un nodo  può vederne  in dettaglio le caratteristiche');
$out_fields_ar = array('data_visita', 'id_utente_studente', 'id_istanza_corso');
$clause = "id_nodo = '{$id_node}'";
$visits_ar = $dh->_find_nodes_history_list($out_fields_ar, $clause);
if (AMA_DataHandler::isError($visits_ar)) {
    $msg = $visits_ar->getMessage();
}
$visits_dataHa = array();
$count_visits = count($visits_ar);
if ($count_visits) {
    foreach ($visits_ar as $visit) {
        $student = $dh->_get_user_info($visit[2]);
        $studentname = $student['username'];
        $visits_dataHa[] = array(translateFN('Data') => ts2dFN($visit[1]), translateFN('Ora') => ts2tmFN($visit[1]), translateFN('Studente') => $studentname);
    }
    $tObj = new Table();
    // $tObj->initTable('1','center','2','1','100%');
    $tObj->initTable('0', 'right', '1', '0', '90%', '', '', '', '', '1', '0');
    // Syntax: $border,$align,$cellspacing,$cellpadding,$width,$col1, $bcol1,$col2, $bcol2
    $caption = translateFN('Dettaglio');
    $summary = translateFN('Dettaglio delle visite al nodo') . ' ' . $id_node;
    $tObj->setTable($visits_dataHa, $caption, $summary);
    $tabled_visits_dataHa = $tObj->getTable();
} else {
    $tabled_visits_dataHa = translateFN('Nessun dato disponibile');
}
$banner = (include ROOT_DIR . '/include/banner.inc.php');
$content_dataAr = array('banner' => $banner, 'menu' => $menu, 'user_name' => $user_name, 'user_type' => $user_type, 'help' => $help, 'status' => $status, 'head' => translateFN('Dettaglio delle visite al nodo') . ' ' . $id_node, 'dati' => $tabled_visits_dataHa, 'agenda' => $user_agenda->getHtml(), 'messages' => $user_messages->getHtml());
ARE::render($layout_dataAr, $content_dataAr);
コード例 #14
0
ファイル: report_chat.php プロジェクト: eguicciardi/ada
         $id_chatroom = $sess_id_course_instance;
     }
 }
 $mh = MessageHandler::instance($_SESSION['sess_selected_tester_dsn']);
 $chat_data = $mh->find_chat_messages($sess_user_id, ADA_MSG_CHAT, $id_chatroom, $fields_list = "", $clause = "", $ordering = "");
 if (is_array($chat_data)) {
     $chat_dataAr = array();
     $c = 0;
     $tbody_data = array();
     $export_log = translateFN('Data e ora') . ';' . translateFN('Utente') . ';' . translateFN('Messaggio') . PHP_EOL;
     foreach ($chat_data as $chat_msgAr) {
         if (is_numeric($chat_msgAr[0])) {
             $sender_dataHa = $dh->_get_user_info($chat_msgAr[0]);
             $user = $sender_dataHa['nome'] . ' ' . $sender_dataHa['cognome'];
             $message = $chat_msgAr[1];
             $data_ora = ts2dFN($chat_msgAr[2]) . " " . ts2tmFN($chat_msgAr[2]);
             /*
             *
                                         $row = array(
                                         translateFN('Data e ora')=>$data_ora,
                                         translateFN('Utente')=>$user,
                                         translateFN('Messaggio')=>strip_tags($message)
                                         );
             */
             $export_log .= $data_ora . ';' . $user . ';' . strip_tags($message) . PHP_EOL;
             //array_push($chat_dataAr,$row);
             $chat_report .= "{$data_ora} {$user}: {$message}<br/>PHP_EOL";
             $c++;
         }
     }
     //}
コード例 #15
0
 function format_as_tags($dataAr)
 {
     $dh = $GLOBALS['dh'];
     $debug = $GLOBALS['debug'];
     $reg_enabled = $GLOBALS['reg_enabled'];
     $id_profile = $GLOBALS['id_profile'];
     $sess_id_user = $SESSION['sess_id_user'];
     if (!is_array($dataAr) || !count($dataAr)) {
         $res = translateFN("Nessuna tag");
         // header("Location: $error?err_msg=$msg");
     } else {
         $formatted_dataHa = array();
         $k = -1;
         foreach ($dataAr as $bookmark) {
             $id_bk = $bookmark[0];
             $id_node = $bookmark[1];
             $date = $bookmark[2];
             $author_id = $bookmark[4];
             $node = $dh->get_node_info($id_node);
             $title = $node['name'];
             $icon = $node['icon'];
             $description = $bookmark[3];
             $authorHa = $dh->_get_user_info($author_id);
             $author_uname = $authorHa['username'];
             $k++;
             $formatted_dataHa[$k]['autore'] = "<a href=\"tags.php?op=list_by_user&id_auth={$author_id}\">{$author_uname}</a>";
             $formatted_dataHa[$k]['data'] = ts2dFN($date);
             $formatted_dataHa[$k]['tag'] = "<a href=\"tags.php?op=list_by_tag&id_bk={$id_bk}\"><img src=\"img/check.png\" border=0>&nbsp;{$description}</a>";
             if (is_array($dh->get_tutor($author_id))) {
                 // tag del tutor differenziate ??
                 $formatted_dataHa[$k]['id_nodo'] = "<a href=\"view.php?id_node={$id_node}\"><img src=\"img/{$icon}\" border=0> {$title}</a> (" . translateFN("Tutor") . ")";
                 //vito 13 gennaio 2009
                 //                if ($id_profile == AMA_TYPE_TUTOR){
                 //                  $formatted_dataHa[$k]['del'] =  "<a href=\"tags.php?op=delete&id_bk=$id_bk\">
                 //                  <img src=\"img/delete.png\" name=\"del_icon\" border=\"0\"
                 //                  alt=\"" . translateFN("Elimina") . "\"></a>";
                 //                  $formatted_dataHa[$k]['edit'] =  "<a href=\"tags.php?op=edit&id_bk=$id_bk\">
                 //                  <img src=\"img/edit.png\" name=\"edit_icon\" border=\"0\"
                 //                  alt=\"" . translateFN("Edit") . "\"></a>";
                 //                } else {
                 //                  $formatted_dataHa[$k]['del'] = "-";
                 //                  $formatted_dataHa[$k]['edit'] = "-";
                 //                }
             } else {
                 $formatted_dataHa[$k]['nodo'] = "<a href=\"view.php?id_node={$id_node}\"><img src=\"img/{$icon}\" border=0> {$title}</a>";
                 // vito 13 gennaio 2009
                 //                if ($reg_enabled AND $author_id == $sess_user_id){
                 //                  $formatted_dataHa[$k]['del'] =  "<a href=\"tags.php?op=delete&id_bk=$id_bk\">
                 //                  <img src=\"img/delete.png\" name=\"del_icon\" border=\"0\"
                 //                  alt=\"" . translateFN("Elimina") . "\"></a>";
                 //                  $formatted_dataHa[$k]['edit'] =  "<a href=\"tags.php?op=edit&id_bk=$id_bk\">
                 //                  <img src=\"img/edit.png\" name=\"edit_icon\" border=\"0\"
                 //                  alt=\"" . translateFN("Edit") . "\"></a>";
                 //                } else {
                 //                  $formatted_dataHa[$k]['del'] = "-";
                 //                  $formatted_dataHa[$k]['edit'] = "-";
                 //                }
             }
             $formatted_dataHa[$k]['zoom'] = "<a href=\"tags.php?op=zoom&id_bk={$id_bk}\">\n              <img src=\"img/zoom.png\" name=\"zoom_icon\" border=\"0\"\n              alt=\"" . translateFN("Zoom") . "\"></a>";
         }
         $t = new Table();
         $t->initTable('', 'default', '2', '1', '100%', '', '', '', '', 1, 0);
         $t->setTable($formatted_dataHa, translateFN("Tag"), '');
         $res = $t->getTable();
     }
     return $res;
 }
コード例 #16
0
 * Obtain and display an eguidance session evaluation sheet.
 */
$eguidance_session_dataAr = $dh->get_eguidance_session($id_course_instance, $page - 1);
if (AMA_DataHandler::isError($eguidance_session_dataAr) && $eguidance_session_dataAr->code != AMA_ERR_GET) {
    $errObj = new ADA_Error(NULL, translateFN("Errore nell'ottenimento delle informazioni sul servizio"), NULL, NULL, NULL, $userObj->getHomePage());
} else {
    if (AMA_DataHandler::isError($eguidance_session_dataAr)) {
        // Mostrare messaggio non ci sono dati
        $data = new CText(translateFN("There aren't evaluation sheets available"));
        $htmlData = $data->getHtml();
    } else {
        $base_href = 'eguidance_sessions_summary.php?id_course_instance=' . $id_course_instance . '&id_user='******'data_ora']);
        }
        $pagination_bar = BaseHtmlLib::getPaginationBar($page, $page_titles, $base_href);
        $data = TutorModuleHtmlLib::displayEguidanceSessionData($tutoredUserObj, $service_infoAr, $eguidance_session_dataAr);
        $htmlData = $pagination_bar->getHtml() . $data->getHtml();
    }
}
/*
 *
 */
$label = translateFN('Eguidance session summary');
$home_link = CDOMElement::create('a', 'href:tutor.php');
$home_link->addChild(new CText(translateFN("Epractitioner's home")));
$path = $home_link->getHtml() . ' > ' . $label;
$content_dataAr = array('user_name' => $user_name, 'user_type' => $user_type, 'status' => $status, 'label' => $label, 'dati' => $htmlData, 'path' => $path);
ARE::render($layout_dataAr, $content_dataAr);
コード例 #17
0
 /**
  * Adds a course to the modello_corso table of the current provider,
  * and then adds a service to the platform and links it to the provider
  *
  * @param SimpleXMLElement $course the root course node to be saved
  *
  * @return AMA_Error on error | int generated course id on success
  *
  * @access private
  */
 private function _add_course($course)
 {
     // gets all object inside 'modello_corso' that are NOT
     // of type 'nodi', 'tests', 'surveys'
     // holds datas of the course to be saved
     $courseArr = array();
     foreach ($course as $nodeName => $nodeValue) {
         if (!in_array($nodeName, $this->_specialNodes)) {
             $courseArr[$nodeName] = (string) $nodeValue;
         }
     }
     $courseArr['id_autore'] = $this->_assignedAuthorID;
     $courseArr['d_create'] = ts2dFN(time());
     $courseArr['d_publish'] = NULL;
     $courseArr['service_level'] = $this->_selectedServiceLevel;
     $this->_logMessage('Adding course model by calling data handler add_course with the following datas:');
     $this->_logMessage(print_r($courseArr, true));
     $rename_count = 0;
     do {
         $courseNewID = $this->_dh->add_course($courseArr);
         if (AMA_DB::isError($courseNewID)) {
             if (strlen($courseArr['nome']) > 32) {
                 $this->_logMessage('Generated name will be over maximum allowed size, I\'ll give up and generate an error message.');
                 $rename_count = -1;
                 // this will force an exit from the while loop
             } else {
                 $this->_logMessage($courseArr['nome'] . ' will generate a duplicate key, rename attempt #' . ++$rename_count);
                 $courseArr['nome'] .= '-DUPLICATE';
             }
         } else {
             $this->_logMessage('Successfully created new corse with name:' . $courseArr['nome'] . ' and id: ' . $courseNewID);
         }
     } while (AMA_DB::isError($courseNewID) && $rename_count >= 0);
     if (!AMA_DB::isError($courseNewID)) {
         $retval = $courseNewID;
         // add a row in common.servizio
         $service_dataAr = array('service_name' => $courseArr['titolo'], 'service_description' => $courseArr['descr'], 'service_level' => 1, 'service_duration' => 0, 'service_min_meetings' => 0, 'service_max_meetings' => 0, 'service_meeting_duration' => 0);
         $id_service = $this->_common_dh->add_service($service_dataAr);
         if (!AMA_DB::isError($id_service)) {
             $tester_infoAr = $this->_common_dh->get_tester_info_from_pointer($this->_selectedTester);
             if (!AMA_DB::isError($tester_infoAr)) {
                 $id_tester = $tester_infoAr[0];
                 $result = $this->_common_dh->link_service_to_course($id_tester, $id_service, $courseNewID);
                 if (AMA_DB::isError($result)) {
                     $retval = $result;
                 }
             } else {
                 $retval = $tester_infoAr;
             }
             // if (!AMA_DB::isError($tester_infoAr))
         } else {
             $retval = $id_service;
         }
         // if (!AMA_DB::isError($id_service))
     } else {
         $retval = $courseNewID;
     }
     // if (!AMA_DB::isError($courseNewID))
     if (AMA_DB::isError($retval)) {
         $this->_logMessage('Adding course (modello_corso table) has FAILED! Pls find details below:');
         $this->_logMessage(print_r($retval, true));
     } else {
         $this->_logMessage('Adding course OK! Generated course_id=' . $retval);
     }
     return $retval;
 }
コード例 #18
0
     *
     *
     * Potremmo avere una classe
     * $agenda = new ADAAgenda($userObj);
     * $appointments = $agenda->futureAppointmentsWithUser($tutoredUserObj->getId());
     *
     */
    $fields_list_Ar = array('data_ora', 'titolo');
    $clause = ' data_ora > ' . time() . ' AND id_mittente=' . $tutoredUserObj->getId() . ' AND (flags & ' . ADA_EVENT_CONFIRMED . ')';
    $sort_field = ' data_ora desc';
    $mh = MessageHandler::instance(MultiPort::getDSN($sess_selected_tester));
    $msgs_ha = $mh->find_messages($userObj->getId(), ADA_MSG_AGENDA, $fields_list_Ar, $clause, $sort_field);
    if (AMA_DataHandler::isError($msgs_ha) || count($msgs_ha) == 0) {
        $appointments_data = new CText('');
    } else {
        $thead_data = array(translateFN('Date'), translateFN('Appointment type'));
        $tbody_data = array();
        foreach ($msgs_ha as $appointment) {
            $tbody_data[] = array(ts2dFN($appointment[0]), ADAEventProposal::removeEventToken($appointment[1]));
        }
        $appointments_data = BaseHtmlLib::tableElement('', $thead_data, $tbody_data);
    }
    $data = $appointments_data->getHtml() . $user_data->getHtml() . $service_data->getHtml() . $eguidance_data->getHtml();
}
$label = translateFN('user service details');
$help = translateFN("Details");
$home_link = CDOMElement::create('a', 'href:tutor.php');
$home_link->addChild(new CText(translateFN("Practitioner's home")));
$module = $home_link->getHtml() . ' > ' . $label;
$content_dataAr = array('user_name' => $user_name, 'user_type' => $user_type, 'status' => $status, 'path' => $module, 'label' => $label, 'dati' => $data);
ARE::render($layout_dataAr, $content_dataAr);
コード例 #19
0
ファイル: ama_extended.inc.php プロジェクト: eguicciardi/ada
 /**
  * loads and prepares all extra fields to be put in the
  * object via the setExtra method called in the multiport
  * 
  * NOTE: this MUST be implemented if user class hasExtra is true.
  * can be empty or removed (no, it won't be called) if hasExtra is false.
  *
  * @param int $userId
  * @return array extra user data stored in the object
  * 
  * @access public
  */
 public function getExtraData(ADAUser $userObj)
 {
     $db =& $this->getConnection();
     if (AMA_DB::isError($db)) {
         return $db;
     }
     /**
      * get extras from table ADAUser::getExtraTableKeyProperty()
      */
     $selQry = "SELECT " . implode(", ", $userObj->getExtraFields()) . " FROM " . ADAUser::getExtraTableName() . " WHERE " . ADAUser::getExtraTableKeyProperty() . "=?";
     $returnArr = $this->getRowPrepared($selQry, array($userObj->getId()), AMA_FETCH_ASSOC);
     /**
      * load data form tables that have a 1:n relationship with studente table.
      *
      *  $tablseToLoad is the array of tables to be loaded. WITHOUT PREFIX.
      *  $tablesPrefix is the prefix of the table in the DB.
      *
      *  the foreach loop does the magic
      */
     $tablesToLoad = ADAUser::getLinkedTables();
     $tablesPrefix = ADAUser::getTablesPrefix();
     if (!is_null($tablesToLoad)) {
         foreach ($tablesToLoad as $table) {
             if (!empty($table) && class_exists($table)) {
                 $selQry = "SELECT " . implode(", ", $table::getFields()) . " FROM " . $tablesPrefix . $table . " WHERE " . $table::getForeignKeyProperty() . "=?" . " ORDER BY " . $table::getKeyProperty() . " ASC";
                 $extraArr = $this->getAllPrepared($selQry, array($userObj->getId()), AMA_FETCH_ASSOC);
                 foreach ($extraArr as $extraKey => $extraElement) {
                     foreach ($extraElement as $key => $val) {
                         if (stripos($key, "date") !== false) {
                             $extraArr[$extraKey][$key] = ts2dFN($val);
                         }
                     }
                 }
                 if (!empty($extraArr)) {
                     $returnArr[$table] = $extraArr;
                 }
             }
         }
     }
     return $returnArr;
 }
コード例 #20
0
ファイル: history_class.inc.php プロジェクト: eguicciardi/ada
 /**
  * @author giorgio 15/mag/2013
  * added $returnHTML parameter
  */
 function format_history_dataFN($user_historyAr, $returnHTML = true)
 {
     //global $dh, $http_root_dir;
     $dh = $GLOBALS['dh'];
     $error = $GLOBALS['error'];
     $http_root_dir = $GLOBALS['http_root_dir'];
     // $debug = $GLOBALS['debug'];
     $data = array();
     //if (!$user_historyAr) {
     //    $user_historyAr = $this->historyAr;
     //}
     foreach ($user_historyAr as $historyHa) {
         $visit_date = $historyHa['data_visita'];
         $exit_date = $historyHa['data_uscita'];
         //$id_course = $historyHa[4];
         $id_visited_node = $historyHa['id_nodo'];
         // $id_visited_node = $id_course."_".$historyHa[0]; Id_node gia' completo
         $u_time_spent = $exit_date - $visit_date;
         $int_mins = floor($u_time_spent / 60);
         $rest_secs = $u_time_spent - $int_mins * 60;
         $int_secs = floor($rest_secs);
         $time_spent = sprintf("%02d:%02d", $int_mins, $int_secs);
         if ($time_spent == '00:00') {
             $time_spent = '-';
         }
         $date = ts2dFN($visit_date);
         $time = ts2tmFN($visit_date);
         // $dh = new Node($id_visited_node);
         //$dataHa = $dh->get_node_info($id_visited_node);
         // $dataHa = Node::get_node_info($id_visited_node);
         $name = $historyHa['nome'];
         // vito, 16 feb 2009
         //            $icon = $this->getIcon($historyHa['tipo']);
         $css_classname = $this->getClassNameForNodeType($historyHa['tipo']);
         $label = translateFN('Nodo');
         $label2 = translateFN('Data');
         $label3 = translateFN('tempo trascorso');
         // vito, 16 feb 2009
         //            $histAr = array($label=>"<a href=" . $http_root_dir . "/browsing/view.php?id_node=$id_visited_node>".$icon." $name</a>",
         //                            $label2=>$date." ".$time,
         //                            $label3=>$time_spent);
         if ($returnHTML) {
             $link_to_node = '<span class="' . $css_classname . '"><a href="' . $http_root_dir . '/browsing/view.php?id_node=' . $id_visited_node . '">' . $name . '</a></span>';
         } else {
             $link_to_node = $name;
         }
         $histAr = array($label => $link_to_node, $label2 => $date . " " . $time, $label3 => $time_spent);
         array_push($data, $histAr);
     }
     return $data;
 }
コード例 #21
0
 /**
  * Gets newsletter history details
  * 
  * @param int $id_newsletter the id of the newsletter
  * @param boolean $statusSent true if must return a value only if newsletter is in sending status 
  * @return AMA_Error on error, result of query execution on success
  */
 public function get_newsletter_history($id_newsletter, $statusSent = false)
 {
     $sql = 'SELECT * FROM `' . self::$PREFIX . 'history` WHERE id_newsletter=?';
     if ($statusSent) {
         $sql .= ' AND `status`=' . MODULES_NEWSLETTER_HISTORY_STATUS_SENT;
     }
     $retval = $this->getAllPrepared($sql, $id_newsletter, AMA_FETCH_ASSOC);
     if (!AMA_DB::isError($retval) && $retval !== false) {
         for ($i = 0; $i < count($retval); $i++) {
             $retval[$i]['datesent'] = ts2dFN($retval[$i]['datesent']);
         }
     }
     return $retval;
 }
コード例 #22
0
function _get_course_instance_info($id_course, $id_course_instance)
{
    $common_dh = $GLOBALS['common_dh'];
    $dh = $GLOBALS['dh'];
    $sess_id_user = $_SESSION['sess_id_user'];
    $userObj = $_SESSION['sess_userObj'];
    $course_dataHa = $common_dh->get_service_info_from_course($id_course);
    $service_title = $course_dataHa[1];
    $service_level = $course_dataHa[3];
    //..
    $provider_dataHa = $common_dh->get_tester_info_from_id_course($id_course);
    if (!AMA_DataHandler::isError($provider_dataHa)) {
        $provider_pointer = $provider_dataHa['puntatore'];
        $provider_name = $provider_dataHa['nome'];
        $provider_dsn = Multiport::getDSN($provider_pointer);
        if ($provider_dsn != null) {
            $provider_dh = AMA_DataHandler::instance($provider_dsn);
            $sub_courses = $provider_dh->get_subscription($sess_id_user, $id_course_instance);
            // if (!AMA_DataHandler::isError($sub_courses)&&$sub_courses['tipo'] == 2) { // introducing status 3 (suspended) and 5 (completed)
            if (!AMA_DataHandler::isError($sub_courses)) {
                // introducing status 3 (suspended) and 5 (completed)
                $info_dataHa = array();
                $id_tutor = $dh->course_instance_tutor_get($id_course_instance);
                // vito, 27 may 2009
                if ($id_tutor !== false) {
                    $tutor = $dh->get_tutor($id_tutor);
                    // vito, 27 may 2009
                    if (!AMA_DataHandler::isError($tutor) && is_array($tutor)) {
                        $tutor_name = $tutor['nome'] . " " . $tutor['cognome'];
                        if (empty($tutor_name)) {
                            $tutor_info = translateFN('Non assegnato');
                        } else {
                            //  if (isset($sess_id_user)){
                            // $tutor_info = "<a href=\"$http_root_dir/admin/zoom_tutor.php?id=$id_tutor\">$tutor_name</a>";
                            // } else{
                            $tutor_info = $tutor_name;
                            //  }
                        }
                    }
                } else {
                    $tutor_info = translateFN('Non assegnato');
                }
                $start_date = ts2dFN($sub_courses['istanza_ha']['data_inizio']);
                // messaggi
                $messages_list = "";
                // FIXME
                // appuntamenti
                $msgs_ha = MultiPort::getUserAgenda($userObj);
                if (AMA_DataHandler::isError($msgs_ha)) {
                    $errObj = new ADA_Error($msgs_ha, translateFN('Errore in lettura appuntamenti'));
                }
                $testers_dataAr = MultiPort::getTestersPointersAndIds();
                $meeting_List = CommunicationModuleHtmlLib::getAgendaAsForm($dataAr, $testers_dataAr);
                //  $label_provider = translateFN('Fornitore');
                //  $label_title = translateFN('Titolo');
                $label_date = translateFN('Data di inizio');
                $label_tutor = translateFN('Tutor');
                $label_meeting = translateFN('Appuntamenti');
                $label_messages = translateFN('Messaggi');
                $row = array("<img src=\"img/flag.png\" border=0> " . $label_date => $start_date, $label_tutor => $tutor_info, $label_meeting => $meeting_list, $label_messages => $messages_list);
                array_push($info_dataHa, $row);
                $tObj = new Table();
                $tObj->initTable('1', 'center', '0', '1', '100%', '', '', '', '', 1, 1);
                $caption = "<strong>" . translateFN("Storico del servizio") . "</strong>";
                $summary = translateFN("Storico del servizio");
                $tObj->setTable($info_dataHa, $caption, $summary);
                $requested_service_data = $tObj->getTable();
            } else {
                $requested_service_data = translateFN("Nessun'informazione disponibile sul servizio {$id_course_instance}.");
            }
        } else {
            $requested_service_data = translateFN("Nessun'informazione disponibile sul servizio {$id_course_instance}.");
        }
    } else {
        $requested_service_data = translateFN("Nessun'informazione disponibile sul servizio {$id_course_instance}.");
    }
    return $requested_service_data;
}
コード例 #23
0
ファイル: add_course.php プロジェクト: eguicciardi/ada
require_once ROOT_DIR . '/include/Forms/CourseModelForm.inc.php';
if (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == 'POST') {
    $providerAuthors = $dh->find_authors_list(array('username'), '');
    $authors = array();
    foreach ($providerAuthors as $author) {
        $authors[$author[0]] = $author[1];
    }
    $availableLanguages = Translator::getSupportedLanguages();
    $languages = array();
    foreach ($availableLanguages as $language) {
        $languages[$language['id_lingua']] = $language['nome_lingua'];
    }
    $form = new CourseModelForm($authors, $languages);
    $form->fillWithPostData();
    if ($form->isValid()) {
        $course = array('nome' => $_POST['nome'], 'titolo' => $_POST['titolo'], 'descr' => $_POST['descrizione'], 'd_create' => ts2dFN(time()), 'd_publish' => isset($_POST['data_pubblicazione']) ? $_POST['data_pubblicazione'] : null, 'id_autore' => $_POST['id_utente_autore'], 'id_nodo_toc' => $_POST['id_nodo_toc'], 'id_nodo_iniziale' => $_POST['id_nodo_iniziale'], 'media_path' => $_POST['media_path'], 'id_lingua' => $_POST['id_lingua'], 'static_mode' => $_POST['static_mode'], 'crediti' => $_POST['crediti'], 'duration_hours' => $_POST['duration_hours'], 'service_level' => $_POST['service_level']);
        $id_course = $dh->add_course($course);
        if (!AMA_DataHandler::isError($id_course)) {
            $node_data = array('id' => $id_course . '_' . $_POST['id_nodo_iniziale'], 'name' => $_POST['titolo'], 'type' => ADA_GROUP_TYPE, 'id_node_author' => $_POST['id_utente_autore'], 'id_nodo_parent' => null, 'parent_id' => null, 'text' => $_POST['descrizione'], 'id_course' => $id_course);
            $result = NodeEditing::createNode($node_data);
            if (AMA_DataHandler::isError($result)) {
                //
            }
            // add a row in common.servizio
            $service_dataAr = array('service_name' => $_POST['titolo'], 'service_description' => $_POST['descrizione'], 'service_level' => $_POST['service_level'], 'service_duration' => 0, 'service_min_meetings' => 0, 'service_max_meetings' => 0, 'service_meeting_duration' => 0);
            $id_service = $common_dh->add_service($service_dataAr);
            if (!AMA_DataHandler::isError($id_service)) {
                $tester_infoAr = $common_dh->get_tester_info_from_pointer($sess_selected_tester);
                if (!AMA_DataHandler::isError($tester_infoAr)) {
                    $id_tester = $tester_infoAr[0];
                    $result = $common_dh->link_service_to_course($id_tester, $id_service, $id_course);
コード例 #24
0
ファイル: user.php プロジェクト: eguicciardi/ada
                        } else {
                            // resume 'normal' behaviour
                            $access_link = CDOMElement::create('div');
                            $link = CDOMElement::create('a', 'href:view.php?id_node=' . $nodeId . '&id_course=' . $courseId . '&id_course_instance=' . $courseInstanceId);
                            if ($isEnded || $subscription_status == ADA_STATUS_TERMINATED || $subscription_status == ADA_STATUS_COMPLETED) {
                                $link->addChild(new CText(translateFN('Rivedi il corso')));
                            } else {
                                if ($isStarted && !$isEnded) {
                                    $link->addChild(new CText(translateFN('Accedi')));
                                }
                            }
                            $access_link->addChild($link);
                        }
                    }
                }
                $tbody_dataAr[] = array($c['titolo'], $started, ts2dFN($start_date), sprintf(translateFN('%d giorni'), $duration), ts2dFN($end_date), $access_link);
                $data = BaseHtmlLib::tableElement('class:doDataTable', $thead_dataAr, $tbody_dataAr);
            }
        } else {
            $data = new CText(translateFN('Non sei iscritto a nessuna classe'));
        }
        // @author giorgio 24/apr/2013
        // end else... line
    }
} else {
    $data = new CText('');
}
$last_access = $userObj->get_last_accessFN(null, "UT", null);
$last_access = AMA_DataHandler::ts_to_date($last_access);
if ($last_access == '' || is_null($last_access)) {
    $last_access = '-';
コード例 #25
0
ファイル: user_class.inc.php プロジェクト: eguicciardi/ada
 function history_ex_done_FN($id_student, $id_profile = "", $id_course_instance = "")
 {
     /**
     	Esercizi svolti
     	Crea array con nodo e punteggio, ordinato in ordine
     	decrescente di punteggio.
     */
     $dh = $GLOBALS['dh'];
     $error = $GLOBALS['error'];
     $http_root_dir = $GLOBALS['http_root_dir'];
     $debug = isset($GLOBALS['debug']) ? $GLOBALS['debug'] : null;
     if (empty($id_profile)) {
         $id_profile = AMA_TYPE_TUTOR;
     }
     $ids_nodi_padri = array();
     if (!empty($this->user_ex_historyAr)) {
         foreach ($this->user_ex_historyAr as $k => $e) {
             $exer_stats_ha[$k]['nome'] = $e[0];
             $exer_stats_ha[$k]['titolo'] = $e[1];
             $exer_stats_ha[$k]['id_nodo_parent'] = $e[2];
             $exer_stats_ha[$k]['id_exe'] = $e[3];
             $exer_stats_ha[$k]['id_nodo'] = $e[4];
             $exer_stats_ha[$k]['id_istanza'] = $e[5];
             $exer_stats_ha[$k]['data'] = $e[6];
             $exer_stats_ha[$k]['punteggio'] = $e[7];
             $exer_stats_ha[$k]['commento'] = $e[8];
             $exer_stats_ha[$k]['correzione'] = $e[9];
             $ids_nodi_padri[] = $exer_stats_ha[$k]['id_nodo_parent'];
         }
         if (!empty($ids_nodi_padri)) {
             $nodi_padri = $dh->get_nodes($ids_nodi_padri, array('nome', 'titolo'));
         }
         $label1 = translateFN('Esercizio');
         $label2 = translateFN('Data');
         $label3 = translateFN('Punteggio');
         $label4 = translateFN('Corretto');
         $data = array();
         foreach ($exer_stats_ha as $k => $e) {
             $id_exe = $e['id_exe'];
             $id_nodo = $e['id_nodo'];
             $nome = $e['nome'];
             $titolo = $e['titolo'];
             $nome_padre = $nodi_padri[$e['id_nodo_parent']]['nome'];
             $punteggio = $e['punteggio'];
             if ($e['commento'] != '-' or $e['correzione'] != '-') {
                 $corretto = translateFN('Si');
             } else {
                 $corretto = translateFN('-');
             }
             $date = ts2dFN($e['data']) . " " . ts2tmFN($e['data']);
             if ($id_profile == AMA_TYPE_TUTOR) {
                 $zoom_module = "{$http_root_dir}/tutor/tutor_exercise.php";
             } else {
                 $zoom_module = "{$http_root_dir}/browsing/exercise_history.php";
             }
             // vito, 18 mar 2009
             $link = CDOMElement::create('a');
             if (!empty($id_course_instance) && is_numeric($id_course_instance)) {
                 $link->setAttribute('href', $zoom_module . '?op=exe&id_exe=' . $id_exe . '&id_student=' . $id_student . '&id_nodo=' . $id_nodo . '&id_course_instance=' . $id_course_instance);
             } else {
                 $link->setAttribute('href', $zoom_module . '?op=exe&id_exe=' . $id_exe . '&id_student=' . $id_student . '&id_nodo=' . $id_nodo);
             }
             $link->addChild(new CText($nome_padre . ' > '));
             $link->addChild(new CText($nome));
             $html = $link->getHtml();
             $data[] = array($label1 => $html, $label2 => $date, $label3 => $punteggio, $label4 => $corretto);
         }
         $t = new Table();
         $t->initTable('0', 'center', '1', '1', '90%', '', '', '', '', '1', '0', '', 'default', 'exercise_table');
         $t->setTable($data, translateFN("Esercizi e punteggio"), translateFN("Esercizi e punteggio"));
         $res = $t->getTable();
     } else {
         $res = translateFN("Nessun esercizio.");
     }
     return $res;
 }
コード例 #26
0
ファイル: author_report.php プロジェクト: eguicciardi/ada
         //header('Location: $error?err_msg=$msg');
         //exit;
     }
     $visits_dataHa = array();
     $count_visits = count($visits_ar);
     if ($count_visits) {
         foreach ($visits_ar as $visit) {
             $user_id = $visit[2];
             if ($user_id > 0) {
                 $student = $dh->_get_user_info($visit[2]);
                 //global $debug;$debug=1;mydebug(__LINE__,__FILE__,$student);$debug=0;
                 $studentname = $student['username'];
             } else {
                 $studentname = translateFN('Guest');
             }
             $visits_dataHa[] = array(translateFN('Data') => ts2dFN($visit[1]), translateFN('Ora') => ts2tmFN($visit[1]), translateFN('Studente') => $studentname, translateFN('Edizione del corso') => $visit[3]);
         }
         $caption = translateFN('Dettaglio delle visite al nodo') . ' ' . $id_node;
         $tObj = BaseHtmlLib::tableElement('id:authorZoom', array_keys(reset($visits_dataHa)), $visits_dataHa, null, $caption);
         $tObj->setAttribute('class', 'default_table doDataTable');
         $tabled_visits_dataHa = $tObj->getHtml();
         $optionsAr['onload_func'] = 'initDoc();';
         $layout_dataAr['CSS_filename'] = array(JQUERY_UI_CSS, JQUERY_DATATABLE_CSS);
         $layout_dataAr['JS_filename'] = array(JQUERY, JQUERY_UI, JQUERY_DATATABLE, JQUERY_DATATABLE_DATE, JQUERY_NO_CONFLICT);
     } else {
         $tabled_visits_dataHa = translateFN('Nessun dato disponibile');
     }
     $menu .= '<a href="author_report.php?mode=summary">' . translateFN('report') . '</a>';
     break;
 case 'xml':
     $filename = $id_course . '.xml';
コード例 #27
0
ファイル: tutor.php プロジェクト: eguicciardi/ada
             $data_inizio = $one_instance[2];
             $data_previsto = $one_instance[3];
             $sub_courses = $dh->get_subscription($id_student, $id_instance);
             //mydebug(__LINE__,__FILE__,$sub_courses);
             if ($sub_courses['tipo'] == 2) {
                 $out_fields_ar = array('nome', 'titolo', 'id_istanza', 'data_creazione', 'testo');
                 $clause = "tipo = '2' AND id_utente = '{$id_student}'";
                 $nodes = $dh->find_course_nodes_list($out_fields_ar, $clause, $id_course);
                 $course = $dh->get_course($id_course);
                 $course_title = $course['titolo'];
                 $node_index = translateFN("Nodi aggiunti dallo studente:") . $studente_username . "\n\n";
                 foreach ($nodes as $one_node) {
                     $row = array(translateFN('Corso') => $course_title, translateFN('Data') => ts2dFN($one_node[4]), translateFN('Nodo') => $one_node[0], translateFN('Titolo') => "<a href=\"{$http_root_dir}/browsing/view.php?id_node=" . $one_node[0] . "&id_course={$id_course}&id_course_instance={$id_instance}\">" . $one_node[1] . "</a>");
                     array_push($added_nodesHa, $row);
                     // exporting  to RTF
                     $note = ts2dFN($one_node[4]) . "\n" . $one_node[1] . "\n" . $one_node[5] . "\n";
                     //text
                     $node_index .= $note . "\n____________________________\n";
                 }
             }
         }
     }
 }
 /*
      global $debug; $debug=1;
      mydebug(__LINE__,__FILE__,$added_nodesHa);
      $debug=0;
 */
 if ($op == 'student_notes_export') {
     header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
     // Date in the past