You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
113 lines
3.1 KiB
113 lines
3.1 KiB
<?php
|
|
|
|
/* For licensing terms, see /license.txt */
|
|
|
|
use Chamilo\CoreBundle\Component\Utils\ChamiloApi;
|
|
|
|
$cidReset = true;
|
|
|
|
require_once __DIR__.'/../inc/global.inc.php';
|
|
|
|
api_block_anonymous_users();
|
|
|
|
$studentList = UserManager::getUsersFollowedByStudentBoss(api_get_user_id());
|
|
|
|
$current_course_tool = TOOL_CALENDAR_EVENT;
|
|
$this_section = SECTION_MYAGENDA;
|
|
|
|
$timezone = new DateTimeZone(api_get_timezone());
|
|
$now = new DateTime('now', $timezone);
|
|
$currentYear = (int) $now->format('Y');
|
|
|
|
$searchYear = isset($_GET['year']) ? (int) $_GET['year'] : $currentYear;
|
|
$currentOrder = isset($_GET['order']) && 'desc' === $_GET['order'] ? 'desc' : 'asc';
|
|
|
|
if (api_is_western_name_order()) {
|
|
$orderBy = " firstname ";
|
|
} else {
|
|
$orderBy = " lastname ";
|
|
}
|
|
|
|
$students = UserManager::getUsersFollowedByUser(
|
|
api_get_user_id(),
|
|
STUDENT,
|
|
false,
|
|
false,
|
|
false,
|
|
null,
|
|
null,
|
|
$orderBy,
|
|
$currentOrder,
|
|
null,
|
|
null,
|
|
api_is_student_boss() ? STUDENT_BOSS : COURSEMANAGER
|
|
);
|
|
|
|
if ('desc' === $currentOrder) {
|
|
$order = 'asc';
|
|
} else {
|
|
$order = 'desc';
|
|
}
|
|
|
|
$userInfo = api_get_user_info();
|
|
$userId = $userInfo['id'];
|
|
|
|
$globalColors = ChamiloApi::getColorPalette(false, true, 500);
|
|
$sessionColors = [];
|
|
$sessionColorName = [];
|
|
|
|
foreach ($students as &$student) {
|
|
$student = api_get_user_info($student['user_id']);
|
|
$sessionsList = UserManager::getSubscribedSessionsByYear($student, $searchYear);
|
|
$sessions = UserManager::getSessionsCalendarByYear($sessionsList, $searchYear);
|
|
$personalColors = [];
|
|
$counter = 0;
|
|
foreach ($sessions as &$session) {
|
|
if (!isset($sessionColors[$session['id']])) {
|
|
$session['color'] = $globalColors[$counter];
|
|
$sessionColors[$session['id']] = $session['color'];
|
|
$sessionColorName[$session['color']] = $session['name'];
|
|
} else {
|
|
$session['color'] = $sessionColors[$session['id']];
|
|
}
|
|
$counter++;
|
|
}
|
|
$student['sessions'] = $sessions;
|
|
//$colors = ChamiloApi::getColorPalette(false, true, count($sessions));
|
|
//$student['colors'] = $colors;
|
|
}
|
|
|
|
$table = new HTML_Table(['class' => 'table table-responsive']);
|
|
$headers = [
|
|
get_lang('SessionName'),
|
|
get_lang('Color'),
|
|
];
|
|
$row = 0;
|
|
$column = 0;
|
|
foreach ($headers as $header) {
|
|
$table->setHeaderContents($row, $column, $header);
|
|
$column++;
|
|
}
|
|
$row++;
|
|
foreach ($sessionColorName as $color => $name) {
|
|
$table->setCellContents($row, 0, $name);
|
|
$table->setCellContents($row, 1, "<div style='background:$color '> </div>");
|
|
$row++;
|
|
}
|
|
|
|
$agenda = new Agenda('personal');
|
|
$actions = $agenda->displayActions('list', $userId);
|
|
|
|
$toolName = get_lang('SessionsPlanCalendar');
|
|
|
|
$template = new Template($toolName);
|
|
$template->assign('toolbar', $actions);
|
|
$template->assign('student_id', $userId);
|
|
$template->assign('search_year', $searchYear);
|
|
$template->assign('students', $students);
|
|
$template->assign('legend', $table->toHtml());
|
|
$template->assign('order', $order);
|
|
$template->assign('current_order', $currentOrder);
|
|
|
|
$layout = $template->get_template('agenda/student_boss_planification.tpl');
|
|
$template->display($layout);
|
|
|