if (!isset($ora_evento)) { $event_time = today_timeFN(); } else { $event_time = $ora_evento; } if (!isset($data_evento)) { $event_date = today_dateFN(); } else { $event_date = $data_evento; } /* $event_time = today_timeFN(); $event_date = today_dateFN(); */ $ada_address_book = EventsAddressBook::create($userObj); $tester_TimeZone = MultiPort::getTesterTimeZone($sess_selected_tester); $time = time() + get_timezone_offset($tester_TimeZone, SERVER_TIMEZONE); /* * Last access link */ if (isset($_SESSION['sess_id_course_instance'])) { $last_access = $userObj->get_last_accessFN($_SESSION['sess_id_course_instance'], "UT", null); $last_access = AMA_DataHandler::ts_to_date($last_access); } else { $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 = '-'; } $content_dataAr = array('user_name' => $user_name, 'user_type' => $user_type, 'user_level' => $user_level, 'titolo' => $titolo, 'testo' => isset($testo) ? trim($testo) : '', 'destinatari' => isset($destinatari) ? trim($destinatari) : '', 'course_title' => '<a href="../browsing/main_index.php">' . $course_title . '</a>', 'status' => $err_msg, 'timezone' => $tester_TimeZone, 'event_time' => $event_time, 'event_date' => $event_date, 'last_visit' => $last_access, 'rubrica' => $ada_address_book->getHtml(), 'status' => $err_msg);
/* * We are inside a tester */ $tester = $sess_selected_tester; } /* * Find the appointment */ $msg_ha = MultiPort::getUserAppointment($userObj, $msg_id); if (AMA_DataHandler::isError($msg_ha)) { $errObj = new ADA_Error($msg_ha, translateFN('Errore durante la lettura di un evento'), NULL, NULL, NULL, 'comunica/list_events.php?status=' . urlencode(translateFN('Errore durante la lettura'))); } /** * Conversione Time Zone */ $tester_TimeZone = MultiPort::getTesterTimeZone($tester); $offset = get_timezone_offset($tester_TimeZone, SERVER_TIMEZONE); $date_time = $msg_ha['data_ora']; $date_time_zone = $date_time + $offset; $zone = translateFN("Time zone:") . " " . $tester_TimeZone; $Data_messaggio = AMA_DataHandler::ts_to_date($date_time_zone, "%d/%m/%Y - %H:%M:%S") . " " . $zone; //$Data_messaggio = AMA_DataHandler::ts_to_date($msg_ha['data_ora'], "%d/%m/%Y - %H:%M:%S"); /* * Check if the subject has an internal identifier and remove it */ $oggetto = ADAEventProposal::removeEventToken($msg_ha['titolo']); $mittente = $msg_ha['mittente']; $destinatario = str_replace(",", ", ", $msg_ha['destinatari']); // $destinatario = $msg_ha['destinatari']; $dest_encode = urlencode($mittente); if (isset($message_text) && strlen($message_text) > 0) {
$message_ha['data_ora'] = "now"; $message_ha['mittente'] = "admin"; $message_ha['id_group'] = $id_chatroom; $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. */
/** * Checks if an event can be proposed in the given date and time * * @param string $date * @param string $time * @return TRUE on success, a ADA error code on failure */ public static function canProposeThisDateTime(ADALoggableUser $userObj, $date, $time, $tester = NULL) { $date = DataValidator::validate_date_format($date); if ($date === FALSE) { return ADA_EVENT_PROPOSAL_ERROR_DATE_FORMAT; } else { $current_timestamp = time(); /** * @var timezone management */ $offset = 0; if ($tester === NULL) { $tester_TimeZone = SERVER_TIMEZONE; } else { $tester_TimeZone = MultiPort::getTesterTimeZone($tester); $offset = get_timezone_offset($tester_TimeZone, SERVER_TIMEZONE); } $timestamp_time_zone = sumDateTimeFN(array($date, "{$time}:00")); $timestamp = $timestamp_time_zone - $offset; if ($current_timestamp >= $timestamp) { return ADA_EVENT_PROPOSAL_ERROR_DATE_IN_THE_PAST; } if (MultiPort::hasThisUserAnAppointmentInThisDate($userObj, $timestamp)) { return ADA_EVENT_PROPOSAL_ERROR_DATE_IN_USE; } } return TRUE; }
private static function display_messages_as_form($data_Ar = array(), $message_type = ADA_MSG_SIMPLE, $testers_dataAr = array()) { $common_dh = $GLOBALS['common_dh']; $javascript_ok = check_javascriptFN($_SERVER['HTTP_USER_AGENT']); $appointments_Ar = array(); if ($message_type == ADA_MSG_SIMPLE) { $list_module = 'list_messages.php'; $read_module = 'read_message.php'; $del_img = CDOMElement::create('img', 'src:img/delete.png, name:del_icon'); $del_img->setAttribute('alt', translateFN('Rimuovi il messaggio')); $del_text = translateFN('Cancella'); } else { $list_module = 'list_events.php'; $read_module = 'read_event.php'; $del_text = ''; } $order_by_author_link = CDOMElement::create('a', "href:{$list_module}?sort_field=id_mittente"); $order_by_author_link->addChild(new CText(translateFN('Autore'))); $order_by_time_link = CDOMElement::create('a', "href:{$list_module}?sort_field=data_ora"); $order_by_time_link->addChild(new CText(translateFN('Data ed ora'))); $order_by_subject_link = CDOMElement::create('a', "href:{$list_module}?sort_field=titolo"); $order_by_subject_link->addChild(new CText(translateFN('Oggetto'))); $order_by_priority_link = CDOMElement::create('a', "href:{$list_module}?sort_field=priorita"); $order_by_priority_link->addChild(new CText(translateFN('Priorità'))); $thead_data = array($order_by_author_link, $order_by_time_link, $order_by_subject_link, $order_by_priority_link, $del_text, translateFN('Letto'), ''); foreach ($data_Ar as $tester => $appointment_data_Ar) { //$udh = UserDataHandler::instance(self::getDSN($tester)); //$tester_info_Ar = $common_dh->get_tester_info_from_pointer($tester); $tester_id = $testers_dataAr[$tester]; // if (AMA_Common_DataHandler::isError($tester_info_Ar)) { // /* // * Return a ADA_Error with delayed error handling. // */ // return new ADA_Error($tester_info_Ar,translateFN('Errore in ottenimento informazioni tester'), // NULL,NULL,NULL,NULL,TRUE); // } $tester_TimeZone = MultiPort::getTesterTimeZone($tester); $offset = get_timezone_offset($tester_TimeZone, SERVER_TIMEZONE); foreach ($appointment_data_Ar as $appointment_id => $appointment_Ar) { // trasform message content into variable names $sender_id = $appointment_Ar[0]; $date_time = $appointment_Ar[1]; //$subject = $appointment_Ar[2]; /* * Check if the subject has an internal identifier and remove it. */ //$subject = preg_replace('/[0-9]+#/','',$appointment_Ar[2],1); $subject = ADAEventProposal::removeEventToken($appointment_Ar[2]); $priority = $appointment_Ar[3]; $read_timestamp = $appointment_Ar[4]; $date_time_zone = $date_time + $offset; $zone = translateFN("Time zone:") . " " . $tester_TimeZone; $data_msg = AMA_DataHandler::ts_to_date($date_time_zone, "%d/%m/%Y - %H:%M:%S") . " " . $zone; // $data_msg = AMA_DataHandler::ts_to_date($date_time, "%d/%m/%Y - %H:%M:%S"); // transform sender's id into sender's name // $res_ar = $udh->find_users_list(array("username"), "id_utente=$sender_id"); // if (AMA_DataHandler::isError($res_ar)) { // $sender_username = ''; // } // else { // $sender_username = $res_ar[0][1]; // } $sender_username = $appointment_Ar[6]; //$msg_id = $tester_info_Ar[0].'_'.$appointment_id; $msg_id = $tester_id . '_' . $appointment_id; $url = HTTP_ROOT_DIR . '/comunica/' . $read_module . '?msg_id=' . $msg_id; $subject_link = CDOMElement::create('a', "href:{$url}"); $subject_link->addChild(new CText($subject)); /* * If this is a list of simple messages, then deleting is allowed. * Otherwise it is disabled. */ if ($message_type == ADA_MSG_SIMPLE) { $delete = CDOMElement::create('checkbox', "name:form[del][{$msg_id}],value:{$msg_id}"); $action_link = CDOMElement::create('a', "href:{$list_module}?del_msg_id={$msg_id}"); $action_link->addChild($del_img); } else { $delete = ''; $delete_link = ''; // PROVA, POI RIMETTERE A POSTO $userObj = $_SESSION['sess_userObj']; /* if($userObj instanceof ADAPractitioner) { $event_token = ADAEventProposal::extractEventToken($appointment_Ar[2]); $href = HTTP_ROOT_DIR . '/tutor/eguidance_tutor_form.php?event_token=' . $event_token; $action_link = CDOMElement::create('a', "href:$href"); $action_link->addChild(new CText(translateFN('View eguidance session data'))); } * */ } $read = CDOMElement::create('checkbox', "name:form[read][{$msg_id}],value:{$msg_id}"); if ($read_timestamp != 0) { $read->setAttribute('checked', 'checked'); } if (!isset($action_link)) { $action_link = null; } $appointments_Ar[] = array($sender_username, $data_msg, $subject_link, $priority, $delete, $read, $action_link); } } if (count($appointments_Ar) > 0) { $table = BaseHtmlLib::tableElement('', $thead_data, $appointments_Ar); if (!isset($module)) { $module = null; } $form = CDOMElement::create('form', "name:form, method:post, action:{$module}"); $form->addChild($table); $div = CDOMElement::create('div', 'id:buttons'); $submit = CDOMElement::create('submit', 'name:btn_commit value:' . translateFN('Salva')); $reset = CDOMElement::create('reset', 'name:btn_reset value:' . translateFN('Ripristina')); $div->addChild($submit); $div->addChild($reset); $form->addChild($div); return $form; } else { if ($message_type == ADA_MSG_SIMPLE) { return new CText(translateFN('Non ci sono nuovi messaggi')); } return new CText(translateFN('Non ci sono nuovi appuntamenti')); } }