diff --git a/calendar/calendar_import_form.php b/calendar/calendar_import_form.php new file mode 100644 index 0000000..e2b9ec0 --- /dev/null +++ b/calendar/calendar_import_form.php @@ -0,0 +1,49 @@ +libdir.'/formslib.php'); +require_once($CFG->dirroot.'/calendar/lib.php'); + +class calendar_import_form extends moodleform { + + /** + * Defines the form elements + */ + function definition() { + $mform =& $this->_form; + $mform->addElement('header', 'importheader', 'Select iCal file to import:'); + $mform->addElement('file', 'importfile', get_string('importcalendar', 'calendar')); + $mform->addElement('hidden', 'courseid'); + + $mform->addElement('submit', 'preview', 'Preview Import'); + } +} + +class calendar_import_confirm_form extends moodleform { + + /** + * Defines the form elements + */ + function definition() { + global $allowed, $courseid; + $mform =& $this->_form; + $mform->addElement('header', 'confirmheader', 'Import these events as:'); + $mform->addElement('hidden', 'calendar'); + $mform->addElement('hidden', 'courseid'); + $radio = array(); + + if($allowed->site) { + $radio[] = &MoodleQuickForm::createElement('radio', 'eventtype', '', get_string('globalevents', 'calendar'), 1); + } + if($allowed->courses) { + $radio[] = &MoodleQuickForm::createElement('radio', 'eventtype', '', get_string('courseevents', 'calendar'), $courseid); + } + if($allowed->user){ + $radio[] = &MoodleQuickForm::createElement('radio', 'eventtype', '', get_string('userevents', 'calendar'), 0); + } + $mform->addGroup($radio, 'eventtypes', get_string('eventkind', 'calendar')); + + $mform->addElement('submit', 'import', 'Import Events'); + } +} + +?> diff --git a/calendar/import.php b/calendar/import.php new file mode 100644 index 0000000..59c2e12 --- /dev/null +++ b/calendar/import.php @@ -0,0 +1,156 @@ +libdir.'/bennu/bennu.inc.php'); +require_once($CFG->libdir.'/tablelib.php'); +require_once($CFG->dirroot.'/calendar/calendar_import_form.php'); +require_once($CFG->dirroot.'/calendar/lib.php'); + +$courseid = required_param('courseid', PARAM_INT); +$course = get_record('course', 'id', $courseid); + +if ($courseid && $courseid != SITEID) { + require_login($courseid); +} else if ($CFG->forcelogin) { + require_login(); +} + + +$now = usergetdate(time()); +$navlinks = array(); +$navlinks[] = array('name' => get_string('calendar', 'calendar'), + 'link' =>calendar_get_link_href(CALENDAR_URL.'view.php?view=upcoming&course='.$courseid.'&', + $now['mday'], $now['mon'], $now['year']), + 'type' => 'misc'); +$navlinks[] = array('name' => get_string('importcalendar', 'calendar'), 'link' =>'', 'type' => 'misc'); + +$navigation = build_navigation($navlinks); + +print_header_simple(get_string('importcalendar', 'calendar'), '', $navigation); + +echo '
Failed to update event: '.$eventrecord->name.' '.date('H:i d/m/Y', $eventrecord->timestart).'
'; + } + } else { + if (insert_record('event', $eventrecord)) { + $eventcount++; + } else { + echo 'Failed to add event: '.$eventrecord->name.' '.date('H:i d/m/Y', $eventrecord->timestart).'
'; + } + } + } + echo ''.$eventcount.' events imported successfully.
'; + echo ''.$updatecount.' events updated.
'; + echo ''; + + } else { + if ($formdata = $mform->get_data()) { + $calendar = file_get_contents($_FILES['importfile']['tmp_name']); + $ical = new iCalendar; + $ical->unserialize($calendar); + + echo '';
+ foreach ($ical->parser_errors as $error) {
+ echo $error.'
';
+ }
+ echo '