public function getEndDate() { if ($this->data_fine > 0) { return ts2dFN($this->data_fine); } return ''; }
function today_dateFN() { $now = time(); return ts2dFN($now); }
function getExecutionDate() { if (is_array($this->risposta)) { return ts2dFN($this->risposta['data_visita']); } }
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; }
} 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;
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; }
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; }
/* * 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();
$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;
/** * 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; }
} 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 . ']'));
$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'))); }
$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);
$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++; } } //}
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> {$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; }
* 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);
/** * 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; }
* * * 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);
/** * 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; }
/** * @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; }
/** * 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; }
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; }
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);
} 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 = '-';
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; }
//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';
$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