예제 #1
0
    $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) {
    $testo = urlencode(trim($message_text));
} else {
    $message_text = '';
    $testo = '';
}
$oggetto_url = urlencode(trim($oggetto));
// Registrazione variabili per replay
$destinatari_replay = $mittente;
//
$_SESSION['destinatari_replay'] = $destinatari_replay;
예제 #2
0
         if (AMA_DataHandler::isError($id_chatroom)) {
             $errObj = new ADA_Error($id_chatroom, translateFN("Si è verificato un errore nella creazione della chatroom. L'appuntamento non è stato creato."), NULL, NULL, NULL, $userObj->getHomePage());
         }
     } else {
         $event_flag = ADA_VIDEOCHAT_EVENT;
     }
     $message_text .= ADAEvent::generateEventMessageAction($event_flag, $id_course, $course_instance);
 }
 $message_ha = array('tipo' => ADA_MSG_AGENDA, 'flags' => ADA_EVENT_CONFIRMED | $event_flag, 'mittente' => $user_uname, 'destinatari' => array($user_uname, $practitioner_proposal['mittente']), 'data_ora' => $data_ora, 'titolo' => ADAEventProposal::addEventToken($event_token, $new_subject), 'testo' => $message_text);
 /*
  * Here we send an email message as an appointment reminder.
  * We send it seprately to the user and to the practitioner, since we do not
  * want the user to know the practitioner's email address.
  */
 $appointment_type = $new_subject;
 $appointment_title = ADAEventProposal::removeEventToken($subject);
 $appointment_message = sprintf(translateFN('Provider: "%s".%sService: "%s".%s'), $tester_name, $newline, $service_name, $newline) . ' ' . sprintf(translateFN('This is a reminder for the appointment %s: %s in date %s at time %s'), $appointment_title, $appointment_type, $date, $time);
 $practitioner_email_message_ha = array('tipo' => ADA_MSG_MAIL, 'mittente' => $adm_uname, 'destinatari' => array($practitioner_proposal['mittente']), 'data_ora' => 'now', 'titolo' => 'ADA: ' . translateFN('appointment reminder'), 'testo' => $appointment_message);
 $user_email_message_ha = array('tipo' => ADA_MSG_MAIL, 'mittente' => $adm_uname, 'destinatari' => array($user_uname), 'data_ora' => 'now', 'titolo' => 'ADA: ' . translateFN('appointment reminder'), 'testo' => $appointment_message);
 /*
  * Send the email message to the practitioner
  */
 $res = $mh->send_message($practitioner_email_message_ha);
 if (AMA_DataHandler::isError($res)) {
     $errObj = new ADA_Error($res, translateFN('Impossibile spedire il messaggio'), NULL, NULL, NULL, $error_page . '?err_msg=' . urlencode(translateFN('Impossibile spedire il messaggio ERR_1')));
 }
 /*
  * Send the email message to the user
  */
 $res = $mh->send_message($user_email_message_ha);
 if (AMA_DataHandler::isError($res)) {
예제 #3
0
        if (isset($previous_proposal_msg_id)) {
            MultiPort::removeUserAppointments($userObj, array($previous_proposal_msg_id));
        }
        /*
         * Inviamo una mail all'utente in cui lo informiamo del fatto che il
         * practitioner ha inviato delle nuove proposte
         */
        $admtypeAr = array(AMA_TYPE_ADMIN);
        $admList = $common_dh->get_users_by_type($admtypeAr);
        if (!AMA_DataHandler::isError($admList)) {
            $adm_uname = $admList[0]['username'];
        } else {
            $adm_uname = "";
            // ??? FIXME: serve un superadmin nel file di config?
        }
        $clean_subject = ADAEventProposal::removeEventToken($subject);
        $message_content = sprintf(translateFN('Dear user, the practitioner %s has sent you new proposal dates for the appointment: %s.'), $userObj->getFullName(), $clean_subject);
        $message_ha = array('tipo' => ADA_MSG_MAIL, 'mittente' => $adm_uname, 'destinatari' => array($addresseeObj->username), 'data_ora' => 'now', 'titolo' => 'ADA: ' . translateFN('new event proposal dates'), 'testo' => $message_content);
        $res = $mh->send_message($message_ha);
        if (AMA_DataHandler::isError($res)) {
            $errObj = new ADA_Error($res, translateFN('Impossibile spedire il messaggio'), NULL, NULL, NULL, $error_page . '?err_msg=' . urlencode(translateFN('Impossibile spedire il messaggio')));
        }
        $text = translateFN("La proposta di appuntamento è stata inviata con successo all'utente ") . $addresseeObj->getFullName() . ".";
        $form = CommunicationModuleHtmlLib::getOperationWasSuccessfullView($text);
        //header('Location: '.HTTP_ROOT_DIR.'/comunica/list_events.php');
        //exit();
    }
} else {
    if (isset($msg_id)) {
        $data = MultiPort::getUserAppointment($userObj, $msg_id);
        if ($data['flags'] & ADA_EVENT_PROPOSAL_OK) {
예제 #4
0
     *
     *
     * Potremmo avere una classe
     * $agenda = new ADAAgenda($userObj);
     * $appointments = $agenda->futureAppointmentsWithUser($tutoredUserObj->getId());
     *
     */
    $fields_list_Ar = array('data_ora', 'titolo');
    $clause = ' data_ora > ' . time() . ' AND id_mittente=' . $tutoredUserObj->getId() . ' AND (flags & ' . ADA_EVENT_CONFIRMED . ')';
    $sort_field = ' data_ora desc';
    $mh = MessageHandler::instance(MultiPort::getDSN($sess_selected_tester));
    $msgs_ha = $mh->find_messages($userObj->getId(), ADA_MSG_AGENDA, $fields_list_Ar, $clause, $sort_field);
    if (AMA_DataHandler::isError($msgs_ha) || count($msgs_ha) == 0) {
        $appointments_data = new CText('');
    } else {
        $thead_data = array(translateFN('Date'), translateFN('Appointment type'));
        $tbody_data = array();
        foreach ($msgs_ha as $appointment) {
            $tbody_data[] = array(ts2dFN($appointment[0]), ADAEventProposal::removeEventToken($appointment[1]));
        }
        $appointments_data = BaseHtmlLib::tableElement('', $thead_data, $tbody_data);
    }
    $data = $appointments_data->getHtml() . $user_data->getHtml() . $service_data->getHtml() . $eguidance_data->getHtml();
}
$label = translateFN('user service details');
$help = translateFN("Details");
$home_link = CDOMElement::create('a', 'href:tutor.php');
$home_link->addChild(new CText(translateFN("Practitioner's home")));
$module = $home_link->getHtml() . ' > ' . $label;
$content_dataAr = array('user_name' => $user_name, 'user_type' => $user_type, 'status' => $status, 'path' => $module, 'label' => $label, 'dati' => $data);
ARE::render($layout_dataAr, $content_dataAr);
 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'));
     }
 }