예제 #1
0
     */
    MultiPort::removeUserAppointments($userObj, array($msg_id));
    $form = CommunicationModuleHtmlLib::getOperationWasSuccessfullView($text);
} elseif (isset($_GET['err_msg'])) {
    $error_message = translateFN('An error occurred while processing your request, please try again later.') . '<br />' . translateFN('If the problem persists, please contact the administrator.');
    $form = CommunicationModuleHtmlLib::getOperationWasSuccessfullView($error_message);
} else {
    if (isset($msg_id)) {
        $data = MultiPort::getUserAppointment($userObj, $msg_id);
        $_SESSION['practitioner_proposal'] = $data;
        $_SESSION['event_msg_id'] = $msg_id;
        /*
         * Check if the user has already an appointment in one of the proposed dates
         * or if an appointment proposal is in the past.
         */
        $datetimesAr = ADAEventProposal::extractDateTimesFromEventProposalText($data['testo']);
        if ($datetimesAr === FALSE) {
            $errObj = new ADA_Error(NULL, translateFN("Errore nell'ottenimento delle date per l'appuntamento"));
        }
        /*
         * Obtain a messagehandler instance for the correct tester
         */
        if (MultiPort::isUserBrowsingThePublicTester()) {
            /*
             * In base a event_msg_id, ottenere connessione al tester appropriato
             */
            $data_Ar = MultiPort::geTesterAndMessageId($msg_id);
            $tester = $data_Ar['tester'];
        } else {
            /*
             * We are inside a tester
 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;
 }