function thisChatMessageToJSON($chat_message) { $json_string = '{ "id": ' . $chat_message['id_messaggio'] . ', "type":"' . $chat_message['tipo'] . '", "time":"' . ts2tmFN($chat_message['data_ora']) . '", "sender":"' . $chat_message['username'] . '", "text":"' . $chat_message['testo'] . '" },'; return $json_string; }
//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';
/** * @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; }
$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 today_timeFN() { $now = time(); return ts2tmFN($now); }
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; }
$message_ha['testo'] = "<span class=user_name>{$user_name}</span> " . translateFN("è entrato nella stanza"); $result = $mh->send_message($message_ha); // GESTIONE ERRORE } } } if ($exit_reason != NO_EXIT_REASON) { $chat = new CText(''); $offset = 0; if ($_SESSION['sess_selected_tester'] === NULL) { $tester_TimeZone = SERVER_TIMEZONE; } else { $tester_TimeZone = MultiPort::getTesterTimeZone($_SESSION['sess_selected_tester']); $offset = get_timezone_offset($tester_TimeZone, SERVER_TIMEZONE); } $current_time = ts2tmFN(time() + $offset); $close_page_message = addslashes(translateFN("You don't have a chat appointment at this time.")) . " ({$current_time})"; $optionsAr = array('onload_func' => "close_page('{$close_page_message}');"); } else { //$event_token = $chatroomObj->get_event_token(); $request_arguments = "chatroom={$id_chatroom}"; $chat = CommunicationModuleHtmlLib::getChat($request_arguments, $userObj, $event_token); $optionsAr = array('onload_func' => 'startChat();'); } $banner = (include ROOT_DIR . '/include/banner.inc.php'); /* * Create here the close link. */ $exit_chat = CDOMElement::create('a'); $exit_chat->addChild(new CText(translateFN('Chiudi'))); if ($userObj instanceof ADAPractitioner) {
} } } //$json_data .= "]"; /* * costruisce la stringa json contenente i messaggi ricevuti */ $json_data = "["; $messages_count = count($messages_display_Ha); $i = 0; while ($messages_count > 1) { $message = $messages_display_Ha[$i]; $json_data .= '{"id":' . $message['id_messaggio'] . ',"tipo":"' . $message['tipo'] . '", "time":"' . ts2tmFN($message['data_ora']) . '","sender":"' . $message['nome'] . '","text":"' . $message['testo'] . '"},'; $messages_count--; $i++; } if ($messages_count == 1) { $message = $messages_display_Ha[$i]; $json_data .= '{"id":' . $message['id_messaggio'] . ',"tipo":"' . $message['tipo'] . '", "time":"' . ts2tmFN($message['data_ora']) . '","sender":"' . $message['nome'] . '","text":"' . $message['testo'] . '"}'; } $json_data .= "]"; /* * fine di costruisce la stringa json contenente i messaggi ricevuti */ /* * invio della risposta JSON al simulatore */ $error = 0; //$response = '{"error" : '.$error.', "execution_time" : '.$total_time.'}'; $response = '{"error":' . $error . ',"data":' . $json_data . '}'; print $response;
$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);
public static function getProposedEventForm($data = array(), $errors = array(), $tester = NULL) { $error_messages = array(ADA_EVENT_PROPOSAL_ERROR_DATE_FORMAT => translateFN("Attenzione: il formato della data non è corretto."), ADA_EVENT_PROPOSAL_ERROR_DATE_IN_THE_PAST => translateFN("Attenzione: la data e l'ora proposte per l'appuntamento sono antecedenti a quelle attuali."), ADA_EVENT_PROPOSAL_ERROR_DATE_IN_USE => translateFN("Attenzione: è già presente un appuntamento in questa data e ora")); // $regexp = '/<date>([0-9]{2}\/[0-9]{2}\/[0-9]{4})<\/date>(?:\s)*<time>([0-9]{2}:[0-9]{2})<\/time>/'; // preg_match_all($regexp, $data['testo'], $matches); // $dates = $matches[1]; // $times = $matches[2]; $datetimesAr = ADAEventProposal::extractDateTimesFromEventProposalText($data['testo']); // $regexp = '/<notes>(.*)<\/notes>/'; // preg_match($regexp, $data['testo'], $matches); // $practitioner_notes = $matches[1]; $practitioner_notes = ADAEventProposal::extractNotesFromEventProposalText($data['testo']); // $regexp = '/<id_course_instance>(.*)<\/id_course_instance>/'; // preg_match($regexp, $data['testo'], $matches); // $course_instance = $matches[1]; $course_instance = ADAEventProposal::extractIdCourseInstanceFromEventProposalText($data['testo']); $form = CDOMElement::create('form', 'id:event_proposal_form, name:event_proposal_form, action:event_proposal.php, method:post'); $hidden = CDOMElement::create('hidden', 'id:id_course_instance, name:id_course_instance'); $hidden->setAttribute('value', $course_instance); $form->addChild($hidden); $subject = CDOMElement::create('div', 'class:proposal_title'); $event_title = translateFN("Oggetto: ") . ADAEventProposal::removeEventToken($data['titolo']); $subject->addChild(new CText($event_title)); $offset = 0; if ($tester === NULL) { $tester_TimeZone = SERVER_TIMEZONE; } else { $tester_TimeZone = MultiPort::getTesterTimeZone($tester); $offset = get_timezone_offset($tester_TimeZone, SERVER_TIMEZONE); } $now = time() + $offset; $zone = translateFN("Time zone:") . " " . $tester_TimeZone . " " . translateFN("actual time: ") . ts2tmFN($now); $timezone = CDOMElement::create('div', 'class:proposal_zone'); $timezone->addChild(new CText($zone)); $type = CDOMElement::create('div', 'class:proposal_type'); $type->addChild(new CText(translateFN('Tipo di appuntamento: '))); if ($data['flags'] & ADA_CHAT_EVENT) { $type->addChild(new CText('Appuntamento in chat')); } else { if ($data['flags'] & ADA_VIDEOCHAT_EVENT) { $type->addChild(new CText('Appuntamento in videochat')); } else { if ($data['flags'] & ADA_PHONE_EVENT) { $type->addChild(new CText('Appuntamento telefonico')); } else { if ($data['flags'] & ADA_IN_PLACE_EVENT) { $type->addChild(new CText('Appuntamento in presenza')); } } } } $descriptive_text = CDOMElement::create('div'); $descriptive_text->addChild(new CText(translateFN("Seleziona una delle possibilità qui di seguito:"))); $needs_to_be_checked = TRUE; $proposal1 = CDOMElement::create('div', 'class:radio_button'); if (is_array($errors) && isset($errors['date1'])) { $date_error = CDOMElement::create('div', 'class:error'); $date_error->addChild(new CText($error_messages[$errors['date1']])); $proposal1->addChild($date_error); $proposal1->addChild(new CText($datetimesAr[0]['date'] . ' ' . $datetimesAr[0]['time'])); } else { $radio1 = CDOMElement::create('radio', 'name:date,checked:checked,value:' . $datetimesAr[0]['date'] . '_' . $datetimesAr[0]['time']); $proposal1->addChild($radio1); $proposal1->addChild(new CText($datetimesAr[0]['date'] . ' ' . $datetimesAr[0]['time'])); $needs_to_be_checked = FALSE; } $proposal2 = CDOMElement::create('div', 'class:radio_button'); if (is_array($errors) && isset($errors['date2'])) { $date_error = CDOMElement::create('div', 'class:error'); $date_error->addChild(new CText($error_messages[$errors['date2']])); $proposal2->addChild($date_error); $proposal2->addChild(new CText($datetimesAr[1]['date'] . ' ' . $datetimesAr[1]['time'])); } else { $radio2 = CDOMElement::create('radio', 'name: date, value:' . $datetimesAr[1]['date'] . '_' . $datetimesAr[1]['time']); if ($needs_to_be_checked) { $radio2->setAttribute('checked', 'checked'); $needs_to_be_checked = FALSE; } $proposal2->addChild($radio2); $proposal2->addChild(new CText($datetimesAr[1]['date'] . ' ' . $datetimesAr[1]['time'])); } $proposal3 = CDOMElement::create('div', 'class:radio_button'); if (is_array($errors) && isset($errors['date3'])) { $date_error = CDOMElement::create('div', 'class:error'); $date_error->addChild(new CText($error_messages[$errors['date3']])); $proposal3->addChild($date_error); $proposal3->addChild(new CText($datetimesAr[2]['date'] . ' ' . $datetimesAr[2]['time'])); } else { $radio3 = CDOMElement::create('radio', 'name:date, value:' . $datetimesAr[2]['date'] . '_' . $datetimesAr[2]['time']); if ($needs_to_be_checked) { $radio3->setAttribute('checked', 'checked'); $needs_to_be_checked = FALSE; } $proposal3->addChild($radio3); $proposal3->addChild(new CText($datetimesAr[2]['date'] . ' ' . $datetimesAr[2]['time'])); } $proposal4 = CDOMElement::create('div', 'id:refuse_proposal, class:radio_button'); $radio4 = CDOMElement::create('radio', 'name:date, value:0'); if ($needs_to_be_checked) { $radio4->setAttribute('checked', 'checked'); $needs_to_be_checked = FALSE; } $proposal4->addChild($radio4); $proposal4->addChild(new CText(translateFN('Nessuna tra le date proposte'))); $notes = CDOMElement::create('div', 'id:practitioner_notes'); if (strlen(trim($practitioner_notes)) > 0) { $notes->addChild(new CText(translateFN("Note del practitioner:") . '<br />')); $notes->addChild(new CText($practitioner_notes)); } $buttons = CDOMElement::create('div', 'id:buttons'); $submit = CDOMElement::create('submit', 'name:submit, value:' . translateFN('Invia')); $reset = CDOMElement::create('reset'); $buttons->addChild($submit); $buttons->addChild($reset); $form->addChild($subject); $form->addChild($timezone); $form->addChild($type); $form->addChild($descriptive_text); $form->addChild($proposal1); $form->addChild($proposal2); $form->addChild($proposal3); $form->addChild($proposal4); $form->addChild($notes); $form->addChild($buttons); return $form; }