Пример #1
0
 /**
  * @param array $courseInfo
  * @param $file
  * @return array|bool|string
  */
 public function importEventFile($courseInfo, $file)
 {
     $charset = api_get_system_encoding();
     $filepath = api_get_path(SYS_ARCHIVE_PATH) . $file['name'];
     $messages = array();
     if (!@move_uploaded_file($file['tmp_name'], $filepath)) {
         error_log('Problem moving uploaded file: ' . $file['error'] . ' in ' . __FILE__ . ' line ' . __LINE__);
         return false;
     }
     $data = file_get_contents($filepath);
     $trans = array('DAILY' => 'daily', 'WEEKLY' => 'weekly', 'MONTHLY' => 'monthlyByDate', 'YEARLY' => 'yearly');
     $sentTo = array('everyone' => true);
     $calendar = Sabre\VObject\Reader::read($data);
     $currentTimeZone = _api_get_timezone();
     if (!empty($calendar->VEVENT)) {
         foreach ($calendar->VEVENT as $event) {
             $start = $event->DTSTART->getDateTime();
             $end = $event->DTEND->getDateTime();
             //Sabre\VObject\DateTimeParser::parseDateTime(string $dt, \Sabre\VObject\DateTimeZone $tz)
             $startDateTime = api_get_local_time($start->format('Y-m-d H:i:s'), $currentTimeZone, $start->format('e'));
             $endDateTime = api_get_local_time($end->format('Y-m-d H:i'), $currentTimeZone, $end->format('e'));
             $title = api_convert_encoding((string) $event->summary, $charset, 'UTF-8');
             $description = api_convert_encoding((string) $event->description, $charset, 'UTF-8');
             $id = $this->addEvent($startDateTime, $endDateTime, 'false', $title, $description, $sentTo);
             $messages[] = " {$title} - " . $startDateTime . " - " . $endDateTime;
             //$attendee = (string)$event->attendee;
             /** @var Sabre\VObject\Property\ICalendar\Recur $repeat */
             $repeat = $event->RRULE;
             if ($id && !empty($repeat)) {
                 $repeat = $repeat->getParts();
                 $freq = $trans[$repeat['FREQ']];
                 if (isset($repeat['UNTIL']) && !empty($repeat['UNTIL'])) {
                     // Check if datetime or just date (strlen == 8)
                     if (strlen($repeat['UNTIL']) == 8) {
                         // Fix the datetime format to avoid exception in the next step
                         $repeat['UNTIL'] .= 'T000000';
                     }
                     $until = Sabre\VObject\DateTimeParser::parseDateTime($repeat['UNTIL'], new DateTimeZone($currentTimeZone));
                     $until = $until->format('Y-m-d H:i');
                     //$res = agenda_add_repeat_item($courseInfo, $id, $freq, $until, $attendee);
                     $this->addRepeatedItem($id, $freq, $until, $sentTo);
                 }
                 if (!empty($repeat['COUNT'])) {
                     /*$count = $repeat['COUNT'];
                       $interval = $repeat['INTERVAL'];
                       $endDate = null;
                       switch($freq) {
                           case 'daily':
                               $start = api_strtotime($startDateTime);
                               $date = new DateTime($startDateTime);
                               $days = $count * $interval;
                               var_dump($days);
                               $date->add(new DateInterval("P".$days."D"));
                               $endDate = $date->format('Y-m-d H:i');
                               //$endDate = $count *
                               for ($i = 0; $i < $count; $i++) {
                                   $days = 86400 * 7
                               }
                           }
                       }*/
                     //$res = agenda_add_repeat_item($courseInfo, $id, $freq, $count, $attendee);
                     /*$this->addRepeatedItem(
                           $id,
                           $freq,
                           $endDate,
                           $sentTo
                       );*/
                 }
             }
         }
     }
     if (!empty($messages)) {
         $messages = implode('<br /> ', $messages);
     } else {
         $messages = get_lang('NoAgendaItems');
     }
     return $messages;
 }
/**
 * Returns the difference between the current date (date(now)) with the parameter $date in a string format like "2 days, 1 hour"
 * Example: $date = '2008-03-07 15:44:08';
 *             date_to_str($date) it will return 3 days, 20 hours
 * The given date should be in the timezone chosen by the user or administrator. Use api_get_local_time() to get it...
 *
 * @param  string The string has to be the result of a date function in this format -> date('Y-m-d H:i:s', time());
 * @return string The difference between the current date and the parameter in a literal way "3 days, 2 hour" *
 * @author Julio Montoya
 */
function date_to_str_ago($date)
{
    static $initialized = false;
    static $today, $yesterday;
    static $min_decade, $min_year, $min_month, $min_week, $min_day, $min_hour, $min_minute;
    static $min_decades, $min_years, $min_months, $min_weeks, $min_days, $min_hours, $min_minutes;
    static $sec_time_time, $sec_time_sing, $sec_time_plu;
    $system_timezone = date_default_timezone_get();
    date_default_timezone_set(_api_get_timezone());
    if (!$initialized) {
        $today = get_lang('Today');
        $yesterday = get_lang('Yesterday');
        $min_decade = get_lang('MinDecade');
        $min_year = get_lang('MinYear');
        $min_month = get_lang('MinMonth');
        $min_week = get_lang('MinWeek');
        $min_day = get_lang('MinDay');
        $min_hour = get_lang('MinHour');
        $min_minute = get_lang('MinMinute');
        $min_decades = get_lang('MinDecades');
        $min_years = get_lang('MinYears');
        $min_months = get_lang('MinMonths');
        $min_weeks = get_lang('MinWeeks');
        $min_days = get_lang('MinDays');
        $min_hours = get_lang('MinHours');
        $min_minutes = get_lang('MinMinutes');
        $sec_time_time = array(315569260, 31556926, 2629743.83, 604800, 86400, 3600, 60);
        $sec_time_sing = array($min_decade, $min_year, $min_month, $min_week, $min_day, $min_hour, $min_minute);
        $sec_time_plu = array($min_decades, $min_years, $min_months, $min_weeks, $min_days, $min_hours, $min_minutes);
        $initialized = true;
    }
    $dst_date = is_string($date) ? strtotime($date) : $date;
    // For avoiding calling date() several times
    $date_array = date('s/i/G/j/n/Y', $dst_date);
    $date_split = explode('/', $date_array);
    $dst_s = $date_split[0];
    $dst_m = $date_split[1];
    $dst_h = $date_split[2];
    $dst_day = $date_split[3];
    $dst_mth = $date_split[4];
    $dst_yr = $date_split[5];
    $dst_date = mktime($dst_h, $dst_m, $dst_s, $dst_mth, $dst_day, $dst_yr);
    $time = $offset = time() - $dst_date;
    // Seconds between current days and today.
    // Here start the functions sec_to_str()
    $act_day = date('d');
    $act_mth = date('n');
    $act_yr = date('Y');
    if ($dst_day == $act_day && $dst_mth == $act_mth && $dst_yr == $act_yr) {
        return $today;
    }
    if ($dst_day == $act_day - 1 && $dst_mth == $act_mth && $dst_yr == $act_yr) {
        return $yesterday;
    }
    $str_result = array();
    $time_result = array();
    $key_result = array();
    $str = '';
    $i = 0;
    for ($i = 0; $i < count($sec_time_time); $i++) {
        $seconds = $sec_time_time[$i];
        if ($seconds > $time) {
            continue;
        }
        $current_value = intval($time / $seconds);
        if ($current_value != 1) {
            $date_str = $sec_time_plu[$i];
        } else {
            $date_str = $sec_time_sing[$i];
        }
        $key_result[] = $sec_time_sing[$i];
        $str_result[] = $current_value . ' ' . $date_str;
        $time_result[] = $current_value;
        $str .= $current_value . $date_str;
        $time %= $seconds;
    }
    if ($key_result[0] == $min_day && $key_result[1] == $min_minute) {
        $key_result[1] = ' 0 ' . $min_hours;
        $str_result[0] = $time_result[0] . ' ' . $key_result[0];
        $str_result[1] = $key_result[1];
    }
    if ($key_result[0] == $min_year && ($key_result[1] == $min_day || $key_result[1] == $min_week)) {
        $key_result[1] = ' 0 ' . $min_months;
        $str_result[0] = $time_result[0] . ' ' . $key_result[0];
        $str_result[1] = $key_result[1];
    }
    if (!empty($str_result[1])) {
        $str = $str_result[0] . ', ' . $str_result[1];
    } else {
        $str = $str_result[0];
    }
    date_default_timezone_set($system_timezone);
    return $str;
}
Пример #3
0
 /**
  * Set system parameters
  */
 private function set_system_parameters()
 {
     global $_configuration;
     $this->theme = api_get_visual_theme();
     //Setting app paths/URLs
     $_p = array('web' => api_get_path(WEB_PATH), 'web_relative' => api_get_path(REL_PATH), 'web_course' => api_get_path(WEB_COURSE_PATH), 'web_main' => api_get_path(WEB_CODE_PATH), 'web_css' => api_get_path(WEB_CSS_PATH), 'web_css_theme' => api_get_path(WEB_CSS_PATH) . 'themes/' . $this->theme . '/', 'web_ajax' => api_get_path(WEB_AJAX_PATH), 'web_img' => api_get_path(WEB_IMG_PATH), 'web_plugin' => api_get_path(WEB_PLUGIN_PATH), 'web_lib' => api_get_path(WEB_LIBRARY_PATH), 'web_upload' => api_get_path(WEB_UPLOAD_PATH), 'web_self' => api_get_self(), 'web_query_vars' => api_htmlentities($_SERVER['QUERY_STRING']), 'web_self_query_vars' => api_htmlentities($_SERVER['REQUEST_URI']), 'web_cid_query' => api_get_cidreq());
     $this->assign('_p', $_p);
     //Here we can add system parameters that can be use in any template
     $_s = array('software_name' => $_configuration['software_name'], 'system_version' => $_configuration['system_version'], 'site_name' => api_get_setting('platform.site_name'), 'institution' => api_get_setting('platform.institution'), 'date' => api_format_date('now', DATE_FORMAT_LONG), 'timezone' => _api_get_timezone(), 'gamification_mode' => api_get_setting('platform.gamification_mode'));
     $this->assign('_s', $_s);
 }
Пример #4
0
    /**
     * @param $ticket_id
     * @return array
     */
    public static function get_assign_log($ticket_id)
    {
        $table_support_assigned_log = Database::get_main_table(TABLE_TICKET_ASSIGNED_LOG);
        $ticket_id = intval($ticket_id);

        $sql = "SELECT log.* FROM $table_support_assigned_log log
                WHERE log.ticket_id = '$ticket_id'
                ORDER BY log.assigned_date";
        $result = Database::query($sql);
        $history = array();
        $webpath = api_get_path(WEB_PATH);
        while ($row = Database::fetch_assoc($result)) {
            if ($row['user_id'] != 0) {
                $assignuser = api_get_user_info(
                        $row['user_id']
                );
            }
            $insertuser = api_get_user_info($row['sys_insert_user_id']);
            $row['assigned_date'] = api_convert_and_format_date(
                api_get_local_time($row['assigned_date']), '%d/%m/%y-%H:%M:%S', _api_get_timezone()
            );
            $row['assignuser'] = ($row['user_id'] != 0) ? ('<a href="' . $webpath . 'main/admin/user_information.php?user_id=' . $row['user_id'] . '"  target="_blank">' . $assignuser['username'] . '</a>') : get_lang('Unassign');
            $row['insertuser'] = '******' . $webpath . 'main/admin/user_information.php?user_id=' . $row['sys_insert_user_id'] . '"  target="_blank">' . $insertuser['username'] . '</a>';
            $history[] = $row;
        }
        return $history;
    }
Пример #5
0
function generate_settings_form($settings, $settings_by_access_list)
{
    global $_configuration, $settings_to_avoid, $convert_byte_to_mega_list;
    $table_settings_current = Database::get_main_table(TABLE_MAIN_SETTINGS_CURRENT);
    $form = new FormValidator('settings', 'post', 'settings.php?category=' . Security::remove_XSS($_GET['category']));
    $form->addElement('hidden', 'search_field', !empty($_GET['search_field']) ? Security::remove_XSS($_GET['search_field']) : null);
    $url_id = api_get_current_access_url_id();
    if (!empty($_configuration['multiple_access_urls']) && api_is_global_platform_admin() && $url_id == 1) {
        $group = array();
        $group[] = $form->createElement('button', 'mark_all', get_lang('MarkAll'));
        $group[] = $form->createElement('button', 'unmark_all', get_lang('UnmarkAll'));
        $form->addGroup($group, 'buttons_in_action_right');
    }
    $default_values = array();
    $url_info = api_get_access_url($url_id);
    $i = 0;
    foreach ($settings as $row) {
        if (in_array($row['variable'], array_keys($settings_to_avoid))) {
            continue;
        }
        if (!empty($_configuration['multiple_access_urls'])) {
            if (api_is_global_platform_admin()) {
                if ($row['access_url_locked'] == 0) {
                    if ($url_id == 1) {
                        if ($row['access_url_changeable'] == '1') {
                            $form->addElement('html', '<div style="float: right;"><a class="share_this_setting" data_status = "0"  data_to_send = "' . $row['variable'] . '" href="javascript:void(0);">' . Display::return_icon('shared_setting.png', get_lang('ChangeSharedSetting')) . '</a></div>');
                        } else {
                            $form->addElement('html', '<div style="float: right;"><a class="share_this_setting" data_status = "1" data_to_send = "' . $row['variable'] . '" href="javascript:void(0);">' . Display::return_icon('shared_setting_na.png', get_lang('ChangeSharedSetting')) . '</a></div>');
                        }
                    } else {
                        if ($row['access_url_changeable'] == '1') {
                            $form->addElement('html', '<div style="float: right;">' . Display::return_icon('shared_setting.png', get_lang('ChangeSharedSetting')) . '</div>');
                        } else {
                            $form->addElement('html', '<div style="float: right;">' . Display::return_icon('shared_setting_na.png', get_lang('ChangeSharedSetting')) . '</div>');
                        }
                    }
                }
            }
        }
        $hideme = array();
        $hide_element = false;
        if ($_configuration['access_url'] != 1) {
            if ($row['access_url_changeable'] == 0) {
                // We hide the element in other cases (checkbox, radiobutton) we 'freeze' the element.
                $hide_element = true;
                $hideme = array('disabled');
            } elseif ($url_info['active'] == 1) {
                // We show the elements.
                if (empty($row['variable'])) {
                    $row['variable'] = 0;
                }
                if (empty($row['subkey'])) {
                    $row['subkey'] = 0;
                }
                if (empty($row['category'])) {
                    $row['category'] = 0;
                }
                if (is_array($settings_by_access_list[$row['variable']][$row['subkey']][$row['category']])) {
                    // We are sure that the other site have a selected value.
                    if ($settings_by_access_list[$row['variable']][$row['subkey']][$row['category']]['selected_value'] != '') {
                        $row['selected_value'] = $settings_by_access_list[$row['variable']][$row['subkey']][$row['category']]['selected_value'];
                    }
                }
                // There is no else{} statement because we load the default $row['selected_value'] of the main Chamilo site.
            }
        }
        switch ($row['type']) {
            case 'textfield':
                if (in_array($row['variable'], $convert_byte_to_mega_list)) {
                    $form->addElement('text', $row['variable'], array(get_lang($row['title']), get_lang($row['comment']), get_lang('MB')), array('maxlength' => '8'));
                    $form->applyFilter($row['variable'], 'html_filter');
                    $default_values[$row['variable']] = round($row['selected_value'] / 1024 / 1024, 1);
                } elseif ($row['variable'] == 'account_valid_duration') {
                    $form->addElement('text', $row['variable'], array(get_lang($row['title']), get_lang($row['comment'])), array('maxlength' => '5'));
                    $form->applyFilter($row['variable'], 'html_filter');
                    $default_values[$row['variable']] = $row['selected_value'];
                    // For platform character set selection: Conversion of the textfield to a select box with valid values.
                } elseif ($row['variable'] == 'platform_charset') {
                    continue;
                } else {
                    $hideme['class'] = 'col-md-4';
                    $form->addElement('text', $row['variable'], array(get_lang($row['title']), get_lang($row['comment'])), $hideme);
                    $form->applyFilter($row['variable'], 'html_filter');
                    $default_values[$row['variable']] = $row['selected_value'];
                }
                break;
            case 'textarea':
                if ($row['variable'] == 'header_extra_content') {
                    $file = api_get_path(SYS_PATH) . api_get_home_path() . 'header_extra_content.txt';
                    $value = '';
                    if (file_exists($file)) {
                        $value = file_get_contents($file);
                    }
                    $form->addElement('textarea', $row['variable'], array(get_lang($row['title']), get_lang($row['comment'])), array('rows' => '10'), $hideme);
                    $default_values[$row['variable']] = $value;
                } elseif ($row['variable'] == 'footer_extra_content') {
                    $file = api_get_path(SYS_PATH) . api_get_home_path() . 'footer_extra_content.txt';
                    $value = '';
                    if (file_exists($file)) {
                        $value = file_get_contents($file);
                    }
                    $form->addElement('textarea', $row['variable'], array(get_lang($row['title']), get_lang($row['comment'])), array('rows' => '10'), $hideme);
                    $default_values[$row['variable']] = $value;
                } else {
                    $form->addElement('textarea', $row['variable'], array(get_lang($row['title']), get_lang($row['comment'])), array('rows' => '10'), $hideme);
                    $default_values[$row['variable']] = $row['selected_value'];
                }
                break;
            case 'radio':
                $values = api_get_settings_options($row['variable']);
                $group = array();
                if (is_array($values)) {
                    foreach ($values as $key => $value) {
                        $element =& $form->createElement('radio', $row['variable'], '', get_lang($value['display_text']), $value['value']);
                        if ($hide_element) {
                            $element->freeze();
                        }
                        $group[] = $element;
                    }
                }
                $form->addGroup($group, $row['variable'], array(get_lang($row['title']), get_lang($row['comment'])), '', false);
                $default_values[$row['variable']] = $row['selected_value'];
                break;
            case 'checkbox':
                // 1. We collect all the options of this variable.
                $sql = "SELECT * FROM {$table_settings_current}\n                        WHERE variable='" . $row['variable'] . "' AND access_url =  1";
                $result = Database::query($sql);
                $group = array();
                while ($rowkeys = Database::fetch_array($result)) {
                    // Profile tab option should be hidden when the social tool is enabled.
                    if (api_get_setting('social.allow_social_tool') == 'true') {
                        if ($rowkeys['variable'] == 'show_tabs' && $rowkeys['subkey'] == 'my_profile') {
                            continue;
                        }
                    }
                    // Hiding the gradebook option.
                    if ($rowkeys['variable'] == 'show_tabs' && $rowkeys['subkey'] == 'my_gradebook') {
                        continue;
                    }
                    $element =& $form->createElement('checkbox', $rowkeys['subkey'], '', get_lang($rowkeys['subkeytext']));
                    if ($row['access_url_changeable'] == 1) {
                        // 2. We look into the DB if there is a setting for a specific access_url.
                        $access_url = $_configuration['access_url'];
                        if (empty($access_url)) {
                            $access_url = 1;
                        }
                        $sql = "SELECT selected_value FROM {$table_settings_current}\n                                WHERE\n                                    variable='" . $rowkeys['variable'] . "' AND\n                                    subkey='" . $rowkeys['subkey'] . "' AND\n                                    subkeytext='" . $rowkeys['subkeytext'] . "' AND\n                                    access_url =  {$access_url}";
                        $result_access = Database::query($sql);
                        $row_access = Database::fetch_array($result_access);
                        if ($row_access['selected_value'] == 'true' && !$form->isSubmitted()) {
                            $element->setChecked(true);
                        }
                    } else {
                        if ($rowkeys['selected_value'] == 'true' && !$form->isSubmitted()) {
                            $element->setChecked(true);
                        }
                    }
                    if ($hide_element) {
                        $element->freeze();
                    }
                    $group[] = $element;
                }
                $form->addGroup($group, $row['variable'], array(get_lang($row['title']), get_lang($row['comment'])), '');
                break;
            case 'link':
                $form->addElement('static', null, array(get_lang($row['title']), get_lang($row['comment'])), get_lang('CurrentValue') . ' : ' . $row['selected_value'], $hideme);
                break;
            case 'select':
                /*
                 * To populate the list of options, the select type dynamically calls a function that must be called select_ + the name of the variable being displayed.
                 * The functions being called must be added to the file settings.lib.php.
                 */
                $form->addElement('select', $row['variable'], array(get_lang($row['title']), get_lang($row['comment'])), call_user_func('select_' . $row['variable']), $hideme);
                $default_values[$row['variable']] = $row['selected_value'];
                break;
            case 'custom':
                break;
        }
        switch ($row['variable']) {
            case 'pdf_export_watermark_enable':
                $url = PDF::get_watermark(null);
                if ($url != false) {
                    $delete_url = '<a href="?delete_watermark">' . get_lang('DelImage') . ' ' . Display::return_icon('delete.png', get_lang('DelImage')) . '</a>';
                    $form->addElement('html', '<div style="max-height:100px; max-width:100px; margin-left:162px; margin-bottom:10px; clear:both;"><img src="' . $url . '" style="margin-bottom:10px;" />' . $delete_url . '</div>');
                }
                $form->addElement('file', 'pdf_export_watermark_path', get_lang('AddWaterMark'));
                $allowed_picture_types = array('jpg', 'jpeg', 'png', 'gif');
                $form->addRule('pdf_export_watermark_path', get_lang('OnlyImagesAllowed') . ' (' . implode(',', $allowed_picture_types) . ')', 'filetype', $allowed_picture_types);
                break;
            case 'timezone_value':
                $timezone = $row['selected_value'];
                if (empty($timezone)) {
                    $timezone = _api_get_timezone();
                }
                $form->addElement('html', sprintf(get_lang('LocalTimeUsingPortalTimezoneXIsY'), $timezone, api_get_local_time()));
                break;
        }
    }
    // end for
    if (!empty($settings)) {
        $form->setDefaults($default_values);
    }
    $form->addHtml('<div class="bottom_actions">');
    $form->addButtonSave(get_lang('SaveSettings'));
    $form->addHtml('</div>');
    return $form;
}
Пример #6
0
         $updatedAt = new DateTime(api_get_utc_datetime(), new DateTimeZone(_api_get_timezone()));
         $skill->setStatus(1);
         $skill->setUpdatedAt($updatedAt);
         $entityManager->persist($skill);
         $entityManager->flush();
         Display::addFlash(Display::return_message(sprintf(get_lang('SkillXEnabled'), $skill->getName()), 'success'));
     }
     header('Location: ' . api_get_self());
     exit;
     break;
 case 'disable':
     $skill = $entityManager->find('ChamiloCoreBundle:Skill', $skillId);
     if (is_null($skill)) {
         Display::addFlash(Display::return_message(get_lang('SkillNotFound'), 'error'));
     } else {
         $updatedAt = new DateTime(api_get_utc_datetime(), new DateTimeZone(_api_get_timezone()));
         $skill->setStatus(0);
         $skill->setUpdatedAt($updatedAt);
         $entityManager->persist($skill);
         $skillObj = new Skill();
         $childrens = $skillObj->get_children($skill->getId());
         foreach ($childrens as $children) {
             $skill = $entityManager->find('ChamiloCoreBundle:Skill', $children['id']);
             if (empty($skill)) {
                 continue;
             }
             $skill->setStatus(0);
             $skill->setUpdatedAt($updatedAt);
             $entityManager->persist($skill);
         }
         $entityManager->flush();
Пример #7
0
			</div>
		  </form>';
    echo '</div>';
    echo '</table></div>';
    $messages = $ticket['messages'];
    echo "<div class='row'>";
    echo "<div class='span8 offset2'>";
    foreach ($messages as $message) {
        $type = "success";
        if ($message['admin']) {
            $type = "normal";
            if ($isAdmin) {
                $message['message'] .= '<br/><b>' . $plugin->get_lang('AttendedBy') . ': ' . $message['user_created'] . " - " . api_convert_and_format_date(api_get_local_time($message['sys_insert_datetime']), DATE_TIME_FORMAT_LONG, _api_get_timezone()) . "</b>";
            }
        } else {
            $message['message'] .= '<b>' . get_lang('Sent') . ': ' . api_convert_and_format_date(api_get_local_time($message['sys_insert_datetime']), DATE_TIME_FORMAT_LONG, _api_get_timezone()) . "</b>";
        }
        $receivedMessage = '<b>' . get_lang('Subject') . ': </b> ' . $message['subject'] . '<br/> <b>' . get_lang('Message') . ':</b>' . $message['message'] . '<br/>';
        $attachementLinks = "";
        if (isset($message['atachments'])) {
            $attributeClass = array('class' => 'attachment-link');
            foreach ($message['atachments'] as $attach) {
                $attachementLinks .= Display::tag('div', $attach['attachment_link'], $attributeClass);
            }
        }
        $entireMessage = $receivedMessage . $attachementLinks;
        echo Display::return_message($entireMessage, $type, false);
    }
    echo "</div>";
    echo "</div>";
    $subject = get_lang('ReplyShort') . ": " . $message['subject'];
Пример #8
0
				<div class="label">Responsable:</div>
				<div class="formw">' . $select_admins . '</div>
			</div>			
		  </form>';
    echo '</div>';
    echo '</table></div>';
    $messages = $ticket['messages'];
    foreach ($messages as $message) {
        $class = "messageuser";
        if ($message['admin']) {
            $class = "messagesupport";
            if ($isAdmin) {
                $message['message'] .= "<br/><b>Atendido por: " . $message['user_created'] . " - " . api_convert_and_format_date(api_get_local_time($message['sys_insert_datetime']), DATE_TIME_FORMAT_LONG, _api_get_timezone()) . "</b>";
            }
        } else {
            $message['message'] .= "<b>Enviado: " . api_convert_and_format_date(api_get_local_time($message['sys_insert_datetime']), DATE_TIME_FORMAT_LONG, _api_get_timezone()) . "</b>";
        }
        echo '<div class="' . $class . '" ><b>Asunto: </b> ' . $message['subject'] . '<br/> <b> Mensaje:</b>' . $message['message'] . '<br/>';
        if (isset($message['atachments'])) {
            foreach ($message['atachments'] as $attach) {
                echo $attach['attachment_link'];
            }
        }
        echo '</div>';
    }
    $asunto = "RE: " . $message['subject'];
    $user_admin = api_is_platform_admin();
    if ($ticket['ticket']['status_id'] != 'REE' and $ticket['ticket']['status_id'] != 'CLS') {
        if (!$isAdmin && $ticket['ticket']['status_id'] != 'XCF') {
            show_form_send_message();
        } else {