/**
  * 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;
 }
Exemple #2
0
 /**
  * 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'];
 }