Esempio n. 1
0
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;
}
Esempio n. 2
0
         //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';
Esempio n. 3
0
 /**
  * @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;
 }
Esempio n. 4
0
         $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++;
         }
     }
     //}
Esempio n. 5
0
function today_timeFN()
{
    $now = time();
    return ts2tmFN($now);
}
Esempio n. 6
0
 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;
 }
Esempio n. 7
0
            $message_ha['testo'] = "<span class=user_name>{$user_name}</span> " . translateFN("&egrave; 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) {
Esempio n. 8
0
        }
    }
}
//$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;
Esempio n. 9
0
$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 &egrave; 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: &egrave; gi&agrave; 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&agrave; 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;
 }