document.search_simple.submit();
}
</script>	';
$session_id = intval($_REQUEST['session_id']);
if (empty($session_id)) {
    $temp_course_list = CourseManager::get_courses_list();
} else {
    $temp_course_list = SessionManager::get_course_list_by_session_id($session_id);
}
foreach ($temp_course_list as $temp_course_item) {
    $course_item = CourseManager::get_course_information($temp_course_item['code']);
    $course_list[] = array('db_name' => $course_item['db_name'], 'code' => $course_item['code'], 'title' => $course_item['title'], 'visual_code' => $course_item['visual_code']);
    $course_select_list[$temp_course_item['code']] = $course_item['title'];
}
//Get session list
$session_list = SessionManager::get_sessions_list(array(), array('name'));
$my_session_list = array();
$my_session_list[0] = get_lang('None');
foreach ($session_list as $sesion_item) {
    $my_session_list[$sesion_item['id']] = $sesion_item['name'];
}
$form = new FormValidator('search_simple', 'POST', '', '', null, false);
$form->addElement('select', 'session_id', get_lang('Sessions'), $my_session_list, array('id' => 'session_id', 'onchange' => 'load_courses();'));
$form->addElement('select', 'course_code', get_lang('Courses'), $course_select_list);
$form->addElement('style_submit_button', 'submit_form', get_lang('Filter'));
if (!empty($_REQUEST['course_code'])) {
    $course_code = $_REQUEST['course_code'];
} else {
    $course_code = '';
}
if (empty($course_code)) {
Ejemplo n.º 2
0
/**
 * Get a list of sessions (id, title, url, date_start, date_end) and
 * return to caller. Date start can be set to ask only for the sessions
 * starting at or after this date. Date end can be set to ask only for the
 * sessions ending before or at this date.
 * Function registered as service. Returns strings in UTF-8.
 * @param array List of parameters (security key, date_start and date_end)
 * @return array Sessions list (id=>[title=>'title',url='http://...',date_start=>'...',date_end=>''])
 */
function WSListSessions($params)
{
    if (!WSHelperVerifyKey($params)) {
        return return_error(WS_ERROR_SECRET_KEY);
    }
    $sql_params = array();
    // Dates should be provided in YYYY-MM-DD format, UTC
    if (!empty($params['date_start'])) {
        $sql_params['s.access_start_date'] = array('operator' => '>=', 'value' => $params['date_start']);
    }
    if (!empty($params['date_end'])) {
        $sql_params['s.access_end_date'] = array('operator' => '<=', 'value' => $params['date_end']);
    }
    $sessions_list = SessionManager::get_sessions_list($sql_params);
    $return_list = array();
    foreach ($sessions_list as $session) {
        $return_list[] = array('id' => $session['id'], 'title' => $session['name'], 'url' => api_get_path(WEB_CODE_PATH) . 'session/index.php?session_id=' . $session['id'], 'date_start' => $session['access_start_date'], 'date_end' => $session['access_end_date']);
    }
    return $return_list;
}
function search_sessions($needle, $type)
{
    global $session_in_promotion;
    $xajax_response = new xajaxResponse();
    $return = '';
    if (!empty($needle) && !empty($type)) {
        $session_list = SessionManager::get_sessions_list(array('s.name' => array('operator' => 'LIKE', 'value' => "{$needle}%")));
        $return .= '<select id="session_not_in_promotion" name="session_not_in_promotion_name[]" multiple="multiple" size="15" style="width:360px;">';
        foreach ($session_list as $row) {
            if (!in_array($row['id'], array_keys($session_in_promotion))) {
                $return .= '<option value="' . $row['id'] . '">' . $row['name'] . '</option>';
            }
        }
        $return .= '</select>';
        $xajax_response->addAssign('ajax_list_multiple', 'innerHTML', api_utf8_encode($return));
    }
    return $xajax_response;
}
Ejemplo n.º 4
0
         }
         $courseList = CourseManager::get_courses_followed_by_drh(api_get_user_id());
         if (!empty($courseList)) {
             $courseCodeList = array_keys($courseList);
         }
     }
     if (empty($userIdList) || empty($courseCodeList)) {
         exit;
     }
 } elseif (api_is_student_boss()) {
     $searchByGroups = true;
 } elseif (api_is_platform_admin()) {
     if ($sessionId == -1) {
         $userIdList = SessionManager::getAllUsersFromCoursesFromAllSessionFromStatus('admin', null);
         $userIdList = array_column($userIdList, 'user_id');
         $sessionList = SessionManager::get_sessions_list();
         $sessionIdList = array_column($sessionList, 'id');
         $courseCodeList = array();
         foreach ($sessionList as $session) {
             $courses = SessionManager::get_course_list_by_session_id($session['id']);
             $courseCodeList = array_merge($courseCodeList, array_column($courses, 'code'));
         }
     }
     $searchByGroups = true;
 }
 if ($searchByGroups) {
     $userGroup = new UserGroup();
     $userIdList = array_merge($userIdList, $userGroup->getGroupUsersByUser(api_get_user_id()));
 }
 if (is_array($userIdList)) {
     $userIdList = array_unique($userIdList);
Ejemplo n.º 5
0
<?php

/* For licensing terms, see /license.txt */
use Chamilo\CoreBundle\Entity\Sequence;
$cidReset = true;
require_once '../inc/global.inc.php';
api_protect_global_admin_script();
// setting breadcrumbs
$interbreadcrumb[] = array('url' => 'index.php', 'name' => get_lang('PlatformAdmin'));
$tpl = new Template(get_lang('ResourcesSequencing'));
$sessionListFromDatabase = SessionManager::get_sessions_list();
$sessionList = [];
if (!empty($sessionListFromDatabase)) {
    foreach ($sessionListFromDatabase as $sessionItem) {
        $sessionList[$sessionItem['id']] = $sessionItem['name'] . ' (' . $sessionItem['id'] . ')';
    }
}
$formSequence = new FormValidator('sequence_form', 'post', api_get_self(), null, null, 'inline');
$formSequence->addText('name', get_lang('Sequence'), true, ['cols-size' => [3, 8, 1]]);
$formSequence->addButtonCreate(get_lang('AddSequence'), 'submit_sequence', false, ['cols-size' => [3, 8, 1]]);
$em = Database::getManager();
// Add sequence
if ($formSequence->validate()) {
    $values = $formSequence->exportValues();
    $sequence = new Sequence();
    $sequence->setName($values['name']);
    $em->persist($sequence);
    $em->flush();
    header('Location: ' . api_get_self());
    exit;
}
Ejemplo n.º 6
0
                     if ($id == 'name') {
                         $item2['text'] = $internal;
                     }
                 }
                 $results2[] = $item2;
             }
             $results2[] = array('T', 'text' => 'TODOS', 'id' => 'T');
             echo json_encode($results2);
         } else {
             echo json_encode(array(array('T', 'text' => 'TODOS', 'id' => 'T')));
         }
     }
     break;
 case 'search_session_by_course':
     if (api_is_platform_admin()) {
         $results = SessionManager::get_sessions_list(array('s.name' => array('operator' => 'like', 'value' => "%" . $_REQUEST['q'] . "%"), 'c.id' => array('operator' => '=', 'value' => $_REQUEST['course_id'])));
         $results2 = array();
         if (!empty($results)) {
             foreach ($results as $item) {
                 $item2 = array();
                 foreach ($item as $id => $internal) {
                     if ($id == 'id') {
                         $item2[$id] = $internal;
                     }
                     if ($id == 'name') {
                         $item2['text'] = $internal;
                     }
                 }
                 $results2[] = $item2;
             }
             $results2[] = array('T', 'text' => 'TODOS', 'id' => 'T');
function search_sessions($needle, $type)
{
    global $tbl_user, $elements_in;
    $xajax_response = new XajaxResponse();
    $return = '';
    if (!empty($needle) && !empty($type)) {
        // xajax send utf8 datas... datas in db can be non-utf8 datas
        $charset = api_get_system_encoding();
        $needle = Database::escape_string($needle);
        $needle = api_convert_encoding($needle, $charset, 'utf-8');
        if ($type == 'single') {
            // search users where username or firstname or lastname begins likes $needle
            /*  $sql = 'SELECT user.user_id, username, lastname, firstname FROM '.$tbl_user.' user
                    WHERE (username LIKE "'.$needle.'%"
                    OR firstname LIKE "'.$needle.'%"
                OR lastname LIKE "'.$needle.'%") AND user.user_id<>"'.$user_anonymous.'"   AND user.status<>'.DRH.''.
                $order_clause.
                ' LIMIT 11';*/
        } else {
            if ($type == 'searchbox') {
                $session_list = SessionManager::get_sessions_list(array('s.name LIKE' => "%{$needle}%"));
            } else {
                $session_list = SessionManager::get_sessions_list(array('s.name LIKE' => "{$needle}%"));
            }
        }
        $i = 0;
        if ($type == 'single') {
            /*
                        while ($user = Database :: fetch_array($rs)) {
                            $i++;
                            if ($i<=10) {
                                $person_name = api_get_person_name($user['firstname'], $user['lastname']);
                                $return .= '<a href="javascript: void(0);" onclick="javascript: add_user_to_session(\''.$user['user_id'].'\',\''.$person_name.' ('.$user['username'].')'.'\')">'.$person_name.' ('.$user['username'].')</a><br />';
                            } else {
                                $return .= '...<br />';
                            }
                        }
                        $xajax_response -> addAssign('ajax_list_users_single','innerHTML',api_utf8_encode($return));*/
        } else {
            $return .= '<select id="elements_not_in" name="elements_not_in_name[]" multiple="multiple" size="15" style="width:360px;">';
            foreach ($session_list as $row) {
                if (!in_array($row['id'], array_keys($elements_in))) {
                    $return .= '<option value="' . $row['id'] . '">' . $row['name'] . '</option>';
                }
            }
            $return .= '</select>';
            $xajax_response->addAssign('ajax_list_multiple', 'innerHTML', api_utf8_encode($return));
        }
    }
    return $xajax_response;
}
function search_courses($id_session, $type)
{
    global $tbl_course, $tbl_session_rel_course, $course_list;
    $xajax_response = new xajaxResponse();
    $select_destination = '';
    $return = null;
    if (!empty($type)) {
        $id_session = intval($id_session);
        if ($type == 'origin') {
            $course_list = SessionManager::get_course_list_by_session_id($id_session);
            $temp_course_list = array();
            $return .= '<select id="origin" name="SessionCoursesListOrigin[]" class="form-control" onclick="javascript: checkSelected(this.id,\'copy_option_2\',\'title_option2\',\'destination\');">';
            foreach ($course_list as $course) {
                $temp_course_list[] = "'{$course['code']}'";
                $return .= '<option value="' . $course['code'] . '" title="' . @htmlspecialchars($course['title'] . ' (' . $course['visual_code'] . ')', ENT_QUOTES, api_get_system_encoding()) . '">' . $course['title'] . ' (' . $course['visual_code'] . ')</option>';
            }
            $return .= '</select>';
            $_SESSION['course_list'] = $temp_course_list;
            $_SESSION['session_origin'] = $id_session;
            // Build select for destination sessions where is not included current session from select origin
            if (!empty($id_session)) {
                $sessions = SessionManager::get_sessions_list(array(), array('name', 'ASC'));
                $select_destination .= '<select name="sessions_list_destination" class="form-control" onchange = "javascript: xajax_search_courses(this.value,\'destination\');">';
                $select_destination .= '<option value = "0">-- ' . get_lang('SelectASession') . ' --</option>';
                foreach ($sessions as $session) {
                    if ($id_session == $session['id']) {
                        continue;
                    }
                    if (!empty($session['category_name'])) {
                        $session['category_name'] = ' (' . $session['category_name'] . ') ';
                    }
                    $select_destination .= '<option value="' . $session['id'] . '">' . $session['name'] . ' ' . $session['category_name'] . '</option>';
                }
                $select_destination .= '</select>';
                $xajax_response->addAssign('ajax_sessions_list_destination', 'innerHTML', api_utf8_encode($select_destination));
            } else {
                $select_destination .= '<select name="sessions_list_destination" class="form-control" onchange = "javascript: xajax_search_courses(this.value,\'destination\');">';
                $select_destination .= '<option value = "0">' . get_lang('ThereIsNotStillASession') . '</option>';
                $select_destination .= '</select>';
                $xajax_response->addAssign('ajax_sessions_list_destination', 'innerHTML', api_utf8_encode($select_destination));
            }
            // Select multiple destination empty
            $select_multiple_empty = '<select id="destination" name="SessionCoursesListDestination[]" class="form-control"></select>';
            // Send response by ajax
            $xajax_response->addAssign('ajax_list_courses_origin', 'innerHTML', api_utf8_encode($return));
            $xajax_response->addAssign('ajax_list_courses_destination', 'innerHTML', api_utf8_encode($select_multiple_empty));
        } else {
            //Left Select - Destination
            $list_courses_origin = implode(',', $_SESSION['course_list']);
            $session_origin = $_SESSION['session_origin'];
            // Search courses by id_session where course codes is include en courses list destination
            $sql = "SELECT c.code, c.visual_code, c.title, src.session_id\n                    FROM {$tbl_course} c, {$tbl_session_rel_course} src\n                    WHERE src.c_id = c.id\n                    AND src.session_id = '" . intval($id_session) . "'";
            //AND c.code IN ($list_courses_origin)";
            $rs = Database::query($sql);
            $course_list_destination = array();
            $return .= '<select id="destination" name="SessionCoursesListDestination[]" class="form-control">';
            while ($course = Database::fetch_array($rs)) {
                $course_list_destination[] = $course['code'];
                $return .= '<option value="' . $course['code'] . '" title="' . @htmlspecialchars($course['title'] . ' (' . $course['visual_code'] . ')', ENT_QUOTES, api_get_system_encoding()) . '">' . $course['title'] . ' (' . $course['visual_code'] . ')</option>';
            }
            $return .= '</select>';
            $_SESSION['course_list_destination'] = $course_list_destination;
            // Send response by ajax
            $xajax_response->addAssign('ajax_list_courses_destination', 'innerHTML', api_utf8_encode($return));
        }
    }
    return $xajax_response;
}
function search_sessions($needle, $type)
{
    global $elements_in;
    $xajax_response = new xajaxResponse();
    $return = '';
    if (!empty($needle) && !empty($type)) {
        if ($type == 'single') {
            // search users where username or firstname or lastname begins likes $needle
            /*  $sql = 'SELECT user.user_id, username, lastname, firstname FROM '.$tbl_user.' user
                    WHERE (username LIKE "'.$needle.'%"
                    OR firstname LIKE "'.$needle.'%"
                OR lastname LIKE "'.$needle.'%") AND user.user_id<>"'.$user_anonymous.'"   AND user.status<>'.DRH.''.
                $order_clause.
                ' LIMIT 11';*/
        } else {
            if ($type == 'searchbox') {
                $session_list = SessionManager::get_sessions_list(array('s.name' => array('operator' => 'LIKE', 'value' => "%{$needle}%")));
            } else {
                $session_list = SessionManager::get_sessions_list(array('s.name' => array('operator' => 'LIKE', 'value' => "{$needle}%")));
            }
        }
        $i = 0;
        if ($type == 'single') {
        } else {
            $return .= '<select id="elements_not_in" name="elements_not_in_name[]" multiple="multiple" size="15" style="width:360px;">';
            foreach ($session_list as $row) {
                if (!in_array($row['id'], array_keys($elements_in))) {
                    $return .= '<option value="' . $row['id'] . '">' . $row['name'] . '</option>';
                }
            }
            $return .= '</select>';
            $xajax_response->addAssign('ajax_list_multiple', 'innerHTML', api_utf8_encode($return));
        }
    }
    return $xajax_response;
}
function search_sessions($needle, $type)
{
    global $session_in_promotion;
    $xajax_response = new XajaxResponse();
    $return = '';
    if (!empty($needle) && !empty($type)) {
        // xajax send utf8 datas... datas in db can be non-utf8 datas
        $charset = api_get_system_encoding();
        $needle = Database::escape_string($needle);
        $needle = api_convert_encoding($needle, $charset, 'utf-8');
        $session_list = SessionManager::get_sessions_list(array('s.name LIKE' => "{$needle}%"));
        $return .= '<select id="session_not_in_promotion" name="session_not_in_promotion_name[]" multiple="multiple" size="15" style="width:360px;">';
        foreach ($session_list as $row) {
            if (!in_array($row['id'], array_keys($session_in_promotion))) {
                $return .= '<option value="' . $row['id'] . '">' . $row['name'] . '</option>';
            }
        }
        $return .= '</select>';
        $xajax_response->addAssign('ajax_list_multiple', 'innerHTML', api_utf8_encode($return));
    }
    return $xajax_response;
}
Ejemplo n.º 11
0
 /**
  * Display code for one specific course a logged in user is subscribed to.
  * Shows a link to the course, what's new icons...
  *
  * $my_course['d'] - course directory
  * $my_course['i'] - course title
  * $my_course['c'] - visual course code
  * $my_course['k']  - system course code
  *
  * @param   array       Course details
  * @param   integer     Session ID
  * @param   string      CSS class to apply to course entry
  * @param   boolean     Whether the session is supposedly accessible now (not in the case it has passed and is in invisible/unaccessible mode)
  * @param bool      Whether to show the document quick-loader or not
  * @return  string      The HTML to be printed for the course entry
  *
  * @version 1.0.3
  * @todo refactor into different functions for database calls | logic | display
  * @todo replace single-character $my_course['d'] indices
  * @todo move code for what's new icons to a separate function to clear things up
  * @todo add a parameter user_id so that it is possible to show the courselist of other users (=generalisation). This will prevent having to write a new function for this.
  */
 public static function get_logged_user_course_html($course, $session_id = 0, $class = 'courses', $session_accessible = true, $load_dirs = false)
 {
     global $nosession;
     $user_id = api_get_user_id();
     $course_info = api_get_course_info($course['code']);
     $status_course = CourseManager::get_user_in_course_status($user_id, $course_info['code']);
     $course_info['status'] = empty($session_id) ? $status_course : STUDENT;
     $course_info['id_session'] = $session_id;
     if (!$nosession) {
         global $now, $date_start, $date_end;
     }
     if (empty($date_start) or empty($date_end)) {
         $sess = SessionManager::get_sessions_list(array('s.id' => array('operator' => '=', 'value' => $course_info['id_session'])));
         $date_start = $sess[$course_info['id_session']]['date_start'];
         $date_end = $sess[$course_info['id_session']]['date_end'];
     }
     if (empty($now)) {
         // maybe use api_get_utcdate() here?
         $now = date('Y-m-d h:i:s');
     }
     // Table definitions
     $main_user_table = Database::get_main_table(TABLE_MAIN_USER);
     $tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
     $tbl_session_category = Database::get_main_table(TABLE_MAIN_SESSION_CATEGORY);
     $course_access_settings = CourseManager::get_access_settings($course_info['code']);
     $course_visibility = $course_access_settings['visibility'];
     if ($course_visibility == COURSE_VISIBILITY_HIDDEN) {
         return '';
     }
     $user_in_course_status = CourseManager::get_user_in_course_status(api_get_user_id(), $course_info['code']);
     $is_coach = api_is_coach($course_info['id_session'], $course['code']);
     // Display course entry.
     // Show a hyperlink to the course, unless the course is closed and user is not course admin.
     $session_url = '';
     $session_title = '';
     if ($session_accessible) {
         if ($course_visibility != COURSE_VISIBILITY_CLOSED || $user_in_course_status == COURSEMANAGER) {
             if (!$nosession) {
                 if (empty($course_info['id_session'])) {
                     $course_info['id_session'] = 0;
                 }
                 $sessionCourseAvailable = false;
                 $sessionCourseStatus = api_get_session_visibility($session_id, $course_info['code']);
                 if (in_array($sessionCourseStatus, array(SESSION_VISIBLE_READ_ONLY, SESSION_VISIBLE, SESSION_AVAILABLE))) {
                     $sessionCourseAvailable = true;
                 }
                 if ($user_in_course_status == COURSEMANAGER || $sessionCourseAvailable) {
                     $session_url = api_get_path(WEB_COURSE_PATH) . $course_info['path'] . '/?id_session=' . $course_info['id_session'];
                     $session_title = '<a href="' . api_get_path(WEB_COURSE_PATH) . $course_info['path'] . '/?id_session=' . $course_info['id_session'] . '">' . $course_info['name'] . '</a>';
                 } else {
                     $session_title = $course_info['name'];
                 }
             } else {
                 $session_url = api_get_path(WEB_COURSE_PATH) . $course_info['path'] . '/';
                 $session_title = '<a href="' . api_get_path(WEB_COURSE_PATH) . $course_info['path'] . '/">' . $course_info['name'] . '</a>';
             }
         } else {
             $session_title = $course_info['name'] . ' ' . Display::tag('span', get_lang('CourseClosed'), array('class' => 'item_closed'));
         }
     } else {
         $session_title = $course_info['name'];
     }
     $params = array();
     $params['icon'] = Display::return_icon('blackboard_blue.png', api_htmlentities($course_info['name']), array(), ICON_SIZE_LARGE);
     $showCustomIcon = api_get_configuration_value('course_images_in_courses_list');
     $iconName = basename($course_info['course_image']);
     if ($showCustomIcon && $iconName != 'course.png') {
         $params['icon'] = Display::img($course_info['course_image'], api_htmlentities($course_info['name']), array());
     }
     $params['link'] = $session_url;
     $params['title'] = $session_title;
     $params['right_actions'] = '';
     if ($course_visibility != COURSE_VISIBILITY_CLOSED && $course_visibility != COURSE_VISIBILITY_HIDDEN) {
         if ($load_dirs) {
             $params['right_actions'] .= '<a id="document_preview_' . $course_info['real_id'] . '_' . $course_info['id_session'] . '" class="document_preview" href="javascript:void(0);">' . Display::return_icon('folder.png', get_lang('Documents'), array('align' => 'absmiddle'), ICON_SIZE_SMALL) . '</a>';
             $params['right_actions'] .= Display::div('', array('id' => 'document_result_' . $course_info['real_id'] . '_' . $course_info['id_session'], 'class' => 'document_preview_container'));
         }
     }
     if (api_get_setting('display_coursecode_in_courselist') == 'true') {
         $session_title .= ' (' . $course_info['visual_code'] . ') ';
     }
     if (api_get_setting('display_teacher_in_courselist') == 'true') {
         $teacher_list = null;
         if (!$nosession) {
             $teacher_list = CourseManager::get_teacher_list_from_course_code_to_string($course_info['code'], self::USER_SEPARATOR, true);
             $course_coachs = CourseManager::get_coachs_from_course_to_string($course_info['id_session'], $course['code'], self::USER_SEPARATOR, true);
             if ($course_info['status'] == COURSEMANAGER || $course_info['status'] == STUDENT && empty($course_info['id_session']) || empty($course_info['status'])) {
                 $params['teachers'] = $teacher_list;
             }
             if ($course_info['status'] == STUDENT && !empty($course_info['id_session']) || $is_coach && $course_info['status'] != COURSEMANAGER) {
                 $params['coaches'] = $course_coachs;
             }
         } else {
             $params['teachers'] = $teacher_list;
         }
     }
     $session_title .= isset($course['special_course']) ? ' ' . Display::return_icon('klipper.png', get_lang('CourseAutoRegister')) : '';
     // Display the "what's new" icons
     if ($course_visibility != COURSE_VISIBILITY_CLOSED && $course_visibility != COURSE_VISIBILITY_HIDDEN) {
         $session_title .= Display::show_notification($course_info);
     }
     $params['title'] = $session_title;
     $params['extra'] = '';
     $html = self::course_item_html($params, true);
     $session_category_id = null;
     if (!$nosession) {
         $session = '';
         $active = false;
         if (!empty($course_info['session_name'])) {
             // Request for the name of the general coach
             $sql = 'SELECT lastname, firstname,sc.name
             FROM ' . $tbl_session . ' ts
             LEFT JOIN ' . $main_user_table . ' tu
             ON ts.id_coach = tu.user_id
             INNER JOIN ' . $tbl_session_category . ' sc ON ts.session_category_id = sc.id
             WHERE ts.id=' . (int) $course_info['id_session'] . ' LIMIT 1';
             $rs = Database::query($sql);
             $sessioncoach = Database::store_result($rs);
             $sessioncoach = $sessioncoach[0];
             $session = array();
             $session['title'] = $course_info['session_name'];
             $session_category_id = CourseManager::get_session_category_id_by_session_id($course_info['id_session']);
             $session['category'] = $sessioncoach['name'];
             if ($course_info['date_start'] == '0000-00-00') {
                 //$session['dates'] = get_lang('WithoutTimeLimits');
                 $session['dates'] = '';
                 if (api_get_setting('show_session_coach') === 'true') {
                     $session['coach'] = get_lang('GeneralCoach') . ': ' . api_get_person_name($sessioncoach['firstname'], $sessioncoach['lastname']);
                 }
                 $active = true;
             } else {
                 $session['dates'] = ' - ' . get_lang('From') . ' ' . $course_info['date_start'] . ' ' . get_lang('To') . ' ' . $course_info['date_end'];
                 if (api_get_setting('show_session_coach') === 'true') {
                     $session['coach'] = get_lang('GeneralCoach') . ': ' . api_get_person_name($sessioncoach['firstname'], $sessioncoach['lastname']);
                 }
                 $active = $date_start <= $now && $date_end >= $now;
             }
         }
         $user_course_category = '';
         if (isset($course_info['user_course_cat'])) {
             $user_course_category = $course_info['user_course_cat'];
         }
         $output = array($user_course_category, $html, $course_info['id_session'], $session, 'active' => $active, 'session_category_id' => $session_category_id);
     } else {
         $output = array($course_info['user_course_cat'], $html);
     }
     return $output;
 }