Example #1
0
$ical = new iCalendar();
$ical->add_property('method', 'PUBLISH');
foreach ($events as $event) {
    $ev = new iCalendar_event();
    $ev->add_property('summary', $event->name);
    $ev->add_property('description', $event->description);
    $ev->add_property('class', 'PUBLIC');
    // PUBLIC / PRIVATE / CONFIDENTIAL
    $ev->add_property('last-modified', Bennu::timestamp_to_datetime($event->timemodified));
    $ev->add_property('dtstamp', Bennu::timestamp_to_datetime());
    // now
    $ev->add_property('dtstart', Bennu::timestamp_to_datetime($event->timestart));
    // when event starts
    if ($event->timeduration > 0) {
        //dtend is better than duration, because it works in Microsoft Outlook and works better in Korganizer
        $ev->add_property('dtend', Bennu::timestamp_to_datetime($event->timestart + $event->timeduration));
    }
    if ($event->courseid != 0) {
        $ev->add_property('categories', $courses[$event->courseid]->shortname);
    }
    $ical->add_component($ev);
}
$serialized = $ical->serialize();
if (empty($serialized)) {
    // TODO
    die('bad serialization');
}
//IE compatibility HACK!
if (ini_get('zlib.output_compression')) {
    ini_set('zlib.output_compression', 'Off');
}
Example #2
0
foreach ($entries as $key => $event) {
    $ev = new iCalendar_event();
    $ev->add_property('uid', $event->id . '@' . $hostaddress);
    $ev->add_property('summary', $event->rname . '/' . $event->uname);
    $ev->add_property('description', clean_param($event->note, PARAM_NOTAGS));
    $ev->add_property('class', 'PUBLIC');
    // PUBLIC / PRIVATE / CONFIDENTIAL
    $ev->add_property('created', Bennu::timestamp_to_datetime($event->creation));
    //$ev->add_property('last-modified', Bennu::timestamp_to_datetime($event->creation));
    $ev->add_property('dtstamp', Bennu::timestamp_to_datetime());
    // now
    $ev->add_property('dtstart', Bennu::timestamp_to_datetime($event->termin));
    // when event starts
    if ($event->time > 0) {
        //dtend is better than duration, because it works in Microsoft Outlook and works better in Korganizer
        $ev->add_property('dtend', Bennu::timestamp_to_datetime($event->termin + $event->time));
    }
    //following part in  ical export (export_execute.php) is done if courseid is stored in event
    //I can always get a course Id
    $cm = get_coursemodule_from_id('resop', $resopInCourseId, 0, false, MUST_EXIST);
    $course = get_course($cm->course);
    $coursecontext = context_course::instance($course->id);
    $ev->add_property('categories', format_string($course->shortname, true, array('context' => $coursecontext)));
    $ical->add_component($ev);
}
/*
var_dump($cm);
echo "<br><br>";
var_dump($course);
echo "<br><br>";
var_dump($coursecontext);