123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- <?php
- /* For licensing terms, see /license.txt */
- /**
- * @package chamilo.calendar
- */
- require_once __DIR__.'/../inc/global.inc.php';
- $action = isset($_GET['action']) ? Security::remove_XSS($_GET['action']) : 'calendar_list';
- $logInfo = [
- 'tool' => TOOL_CALENDAR_EVENT,
- 'tool_id' => 0,
- 'tool_id_detail' => 0,
- 'action' => $action,
- ];
- Event::registerLog($logInfo);
- $type = isset($_REQUEST['type']) ? $_REQUEST['type'] : null;
- $interbreadcrumb[] = [
- 'url' => api_get_path(WEB_CODE_PATH).'calendar/agenda_js.php?type='.Security::remove_XSS($type),
- 'name' => get_lang('Agenda'),
- ];
- $currentCourseId = api_get_course_int_id();
- $groupId = api_get_group_id();
- if (!empty($groupId)) {
- $groupProperties = GroupManager::get_group_properties($groupId);
- $groupId = $groupProperties['iid'];
- $interbreadcrumb[] = [
- 'url' => api_get_path(WEB_CODE_PATH)."group/group.php?".api_get_cidreq(),
- 'name' => get_lang('Groups'),
- ];
- $interbreadcrumb[] = [
- 'url' => api_get_path(WEB_CODE_PATH)."group/group_space.php?".api_get_cidreq(),
- 'name' => get_lang('Group area').' '.$groupProperties['name'],
- ];
- }
- $agenda = new Agenda($type);
- $events = $agenda->getEvents(
- null,
- null,
- $currentCourseId,
- $groupId,
- null,
- 'array'
- );
- $this_section = SECTION_MYAGENDA;
- if (!empty($currentCourseId) && $currentCourseId != -1) {
- // Agenda is inside a course tool
- $url = api_get_self().'?'.api_get_cidreq();
- $this_section = SECTION_COURSES;
- // Order by start date
- usort($events, function ($a, $b) {
- $t1 = strtotime($a['start']);
- $t2 = strtotime($b['start']);
- return $t1 > $t2;
- });
- } else {
- // Agenda is out of the course tool (e.g personal agenda)
- // Little hack to sort the events by start date in personal agenda (Agenda events List view - See #8014)
- usort($events, function ($a, $b) {
- $t1 = strtotime($a['start']);
- $t2 = strtotime($b['start']);
- return $t1 - $t2;
- });
- $url = false;
- if (!empty($events)) {
- foreach ($events as &$event) {
- $courseId = isset($event['course_id']) ? $event['course_id'] : '';
- $event['url'] = api_get_self().'?cid='.$courseId.'&type='.$event['type'];
- }
- }
- }
- $actions = $agenda->displayActions('list');
- $tpl = new Template(get_lang('Events'));
- $tpl->assign('agenda_events', $events);
- $tpl->assign('url', $url);
- $tpl->assign('show_action', in_array($type, ['course', 'session']));
- $tpl->assign('agenda_actions', $actions);
- $tpl->assign('is_allowed_to_edit', api_is_allowed_to_edit());
- if (api_is_allowed_to_edit()) {
- if ($action == 'change_visibility') {
- $courseInfo = api_get_course_info();
- $courseCondition = '';
- // This happens when list agenda is not inside a course
- if (($type == 'course' || $type == 'session' && !empty($courseInfo))) {
- // For course and session event types
- // Just needs course ID
- $agenda->changeVisibility($_GET['id'], $_GET['visibility'], $courseInfo);
- } else {
- $courseCondition = '&'.api_get_cidreq();
- }
- header('Location: '.api_get_self().'?type='.$agenda->type.$courseCondition);
- exit;
- }
- }
- $templateName = $tpl->get_template('agenda/event_list.tpl');
- $content = $tpl->fetch($templateName);
- $tpl->assign('content', $content);
- $tpl->display_one_col_template();
|