user_id = $user_id; $this->path = 'block_session'; if ($this->is_block_visible_for_user($user_id)) { $this->sessions = SessionManager::get_sessions_followed_by_drh($user_id); } } /** * This method check if a user is allowed to see the block inside dashboard interface. * * @param int User id * * @return bool Is block visible for user */ public function is_block_visible_for_user($user_id) { $user_info = api_get_user_info($user_id); $user_status = $user_info['status']; $is_block_visible_for_user = false; if (UserManager::is_admin($user_id) || in_array($user_status, $this->permission)) { $is_block_visible_for_user = true; } return $is_block_visible_for_user; } /** * This method return content html containing * information about sessions and its position for showing it inside dashboard interface * it's important to use the name 'get_block' for beeing used from dashboard controller. * * @return array column and content html */ public function get_block() { $column = 2; $data = []; $html = $this->getBlockCard( get_lang('Your sessions'), $this->getContent() ); $data['column'] = $column; $data['content_html'] = $html; return $data; } /** * This method return a content html, it's used inside get_block method for showing it inside dashboard interface. * * @return string content html */ public function getContent() { $content = ''; $sessions = $this->sessions; if (count($sessions) > 0) { $sessions_table = ''; $sessions_table .= ''; $i = 1; foreach ($sessions as $session) { $session_id = intval($session['id']); $title = $session['name']; if (!empty($session['access_start_date'])) { $dateFrom = api_convert_and_format_date( $session['access_start_date'], DATE_FORMAT_SHORT, date_default_timezone_get() ); $dateUntil = api_convert_and_format_date( $session['access_end_date'], DATE_FORMAT_SHORT, date_default_timezone_get() ); $date = vsprintf(get_lang('From %s to %s'), [$dateFrom, $dateUntil]); } else { $date = ' - '; } $count_courses_in_session = count(Tracking::get_courses_list_from_session($session_id)); if ($i % 2 == 0) { $class_tr = 'row_odd'; } else { $class_tr = 'row_even'; } $sessions_table .= ''; $i++; } $sessions_table .= '
'.get_lang('Title').' '.get_lang('Date').' '.get_lang('Number of courses per session').'
'.$title.' '.$date.' '.$count_courses_in_session.'
'; $content .= $sessions_table; } else { $content .= get_lang('There is no available information about your sessions'); } if (count($sessions) > 0) { $content .= '
'.get_lang('See more').'
'; } return $content; } /** * Get number of sessions. * * @return int */ public function get_number_of_sessions() { return count($this->sessions); } }