/** * Tries to import data from an ics or csv file * * @return int */ private function import_from_file() { global $ai1ec_importer_helper; $v = false; $file_extension = strtolower(substr($_FILES[self::NAME_OF_FILE_INPUT]['name'], -3)); if ($file_extension === 'csv') { $iCalcnv = new iCalcnv(); $iCalcnv->setConfig(array('inputfilename' => basename($_FILES[self::NAME_OF_FILE_INPUT]['tmp_name']), 'inputdirectory' => dirname($_FILES[self::NAME_OF_FILE_INPUT]['tmp_name']), 'outputobj' => TRUE, 'extension_check' => FALSE)); $v = $iCalcnv->csv2iCal(); } else { if ($file_extension === 'ics') { // create new instance $v = new vcalendar(); $v->parse(file_get_contents($_FILES[self::NAME_OF_FILE_INPUT]['tmp_name'])); } } $id = $_FILES[self::NAME_OF_FILE_INPUT]['name'] . '-' . date('Y-m-d-H:i:s'); $feed = $this->create_feed_instance($id); $comments = isset($_POST['ai1ec_file_upload_comments_enabled']) ? 'open' : 'closed'; $show_map = isset($_POST['ai1ec_file_upload_map_display_enabled']) ? 1 : 0; $count = $ai1ec_importer_helper->add_vcalendar_events_to_db($v, $feed, $comments, $show_map); return $count; }
/** * Tries to import data treating it either as csv or as ics. * * @param string $data * @return int the number of imported objetcs */ private function import_from_string($data) { $ics = $this->_registry->get('import-export.ics'); $id = __('textarea_import', AI1EC_PLUGIN_NAME) . '-' . date('Y-m-d-H:i:s'); $feed = $this->create_feed_instance($id); $comments = isset($_POST['ai1ec_file_upload_comments_enabled']) ? 'open' : 'closed'; $show_map = isset($_POST['ai1ec_file_upload_map_display_enabled']) ? 1 : 0; $ical_cnv = new iCalcnv(); $ical_cnv->setConfig(array('outputobj' => true, 'string_to_parse' => $data)); $v = $ical_cnv->csv2iCal(); $count = $ics->add_vcalendar_events_to_db($v, array('feed' => $feed, 'comment_status' => $comments, 'do_show_map' => $show_map)); if (0 === $count['count']) { // create new instance $v = new vcalendar(); $v->parse($data); $count = $ics->add_vcalendar_events_to_db($v, array('feed' => $feed, 'comment_status' => $comments, 'do_show_map' => $show_map)); } return $count['count']; }