123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- <?php
- use kigkonsult\iCalcreator\vcalendar;
- use kigkonsult\iCalcreator\vevent;
- $cidReset = true;
- require_once __DIR__.'/../inc/global.inc.php';
- $this_section = SECTION_MYAGENDA;
- api_block_anonymous_users();
- $nameTools = get_lang('MyAgenda');
- $DaysShort = api_get_week_days_short();
- $DaysLong = api_get_week_days_long();
- $MonthsLong = api_get_months_long();
- if (empty($_GET['id'])) {
- api_not_allowed();
- }
- $id = explode('_', $_GET['id']);
- $type = $id[0];
- $id = $id[1];
- $agenda = new Agenda($type);
- if (isset($_GET['course_id'])) {
- $course_info = api_get_course_info_by_id($_GET['course_id']);
- if (!empty($course_info)) {
- $agenda->set_course($course_info);
- }
- }
- $event = $agenda->get_event($id);
- if (!empty($event)) {
- define('ICAL_LANG', api_get_language_isocode());
- $ical = new vcalendar();
- $ical->setConfig('unique_id', api_get_path(WEB_PATH));
- $ical->setProperty('method', 'PUBLISH');
- $ical->setConfig('url', api_get_path(WEB_PATH));
- $vevent = new vevent();
- switch ($_GET['class']) {
- case 'public':
- $vevent->setClass('PUBLIC');
- break;
- case 'private':
- $vevent->setClass('PRIVATE');
- break;
- case 'confidential':
- $vevent->setClass('CONFIDENTIAL');
- break;
- default:
- $vevent->setClass('PRIVATE');
- break;
- }
- $event['start_date'] = api_get_local_time($event['start_date']);
- $event['end_date'] = api_get_local_time($event['end_date']);
- switch ($type) {
- case 'personal':
- case 'platform':
- $vevent->setProperty('summary', api_convert_encoding($event['title'], 'UTF-8', $charset));
- if (empty($event['start_date'])) {
- header('location:'.Security::remove_XSS($_SERVER['HTTP_REFERER']));
- }
- list($y, $m, $d, $h, $M, $s) = preg_split('/[\s:-]/', $event['start_date']);
- $vevent->setProperty(
- 'dtstart',
- ['year' => $y, 'month' => $m, 'day' => $d, 'hour' => $h, 'min' => $M, 'sec' => $s]
- );
- if (empty($event['end_date'])) {
- $y2 = $y;
- $m2 = $m;
- $d2 = $d;
- $h2 = $h;
- $M2 = $M + 15;
- $s2 = $s;
- if ($M2 > 60) {
- $M2 = $M2 - 60;
- $h2++;
- }
- } else {
- list($y2, $m2, $d2, $h2, $M2, $s2) = preg_split('/[\s:-]/', $event['end_date']);
- }
- $vevent->setProperty(
- 'dtend',
- ['year' => $y2, 'month' => $m2, 'day' => $d2, 'hour' => $h2, 'min' => $M2, 'sec' => $s2]
- );
-
- $vevent->setProperty('description', api_convert_encoding($event['description'], 'UTF-8', $charset));
-
-
-
-
-
- $ical->setConfig('filename', $y.$m.$d.$h.$M.$s.'-'.rand(1, 1000).'.ics');
- $ical->setComponent($vevent);
- $ical->returnCalendar();
- break;
- case 'course':
- $vevent->setProperty('summary', api_convert_encoding($event['title'], 'UTF-8', $charset));
- if (empty($event['start_date'])) {
- header('location:'.Security::remove_XSS($_SERVER['HTTP_REFERER']));
- }
- list($y, $m, $d, $h, $M, $s) = preg_split('/[\s:-]/', $event['start_date']);
- $vevent->setProperty(
- 'dtstart',
- ['year' => $y, 'month' => $m, 'day' => $d, 'hour' => $h, 'min' => $M, 'sec' => $s]
- );
- if (empty($event['end_date'])) {
- $y2 = $y;
- $m2 = $m;
- $d2 = $d;
- $h2 = $h;
- $M2 = $M + 15;
- $s2 = $s;
- if ($M2 > 60) {
- $M2 = $M2 - 60;
- $h2++;
- }
- } else {
- list($y2, $m2, $d2, $h2, $M2, $s2) = preg_split('/[\s:-]/', $event['end_date']);
- }
- $vevent->setProperty(
- 'dtend',
- ['year' => $y2, 'month' => $m2, 'day' => $d2, 'hour' => $h2, 'min' => $M2, 'sec' => $s2]
- );
- $vevent->setProperty('description', api_convert_encoding($event['description'], 'UTF-8', $charset));
-
-
-
-
-
- $vevent->setProperty('location', $course_info['name']);
-
-
- $ical->setConfig('filename', $y.$m.$d.$h.$M.$s.'-'.rand(1, 1000).'.ics');
- $ical->setComponent($vevent);
- $ical->returnCalendar();
- break;
- default:
- header('location:'.Security::remove_XSS($_SERVER['HTTP_REFERER']));
- die();
- }
- } else {
- header('location:'.Security::remove_XSS($_SERVER['HTTP_REFERER']));
- exit;
- }
|