/**
  * add_ics_feed function
  *
  * Adds submitted ics feed to the database
  *
  * @return string JSON output
  *
  */
 public function add_ics_feed()
 {
     check_ajax_referer('ai1ec_ics_feed_nonce', 'nonce');
     $db = $this->_registry->get('dbi.dbi');
     $table_name = $db->get_table_name('ai1ec_event_feeds');
     $feed_categories = empty($_REQUEST['feed_category']) ? '' : implode(',', $_REQUEST['feed_category']);
     $entry = array('feed_url' => $_REQUEST['feed_url'], 'feed_category' => $feed_categories, 'feed_tags' => $_REQUEST['feed_tags'], 'comments_enabled' => Ai1ec_Primitive_Int::db_bool($_REQUEST['comments_enabled']), 'map_display_enabled' => Ai1ec_Primitive_Int::db_bool($_REQUEST['map_display_enabled']), 'keep_tags_categories' => Ai1ec_Primitive_Int::db_bool($_REQUEST['keep_tags_categories']), 'keep_old_events' => Ai1ec_Primitive_Int::db_bool($_REQUEST['keep_old_events']));
     $entry = apply_filters('ai1ec_ics_feed_entry', $entry);
     if (is_wp_error($entry)) {
         $output = array('error' => true, 'message' => $entry->get_error_message());
         $json_strategy = $this->_registry->get('http.response.render.strategy.json');
         return $json_strategy->render(array('data' => $output));
     }
     $format = array('%s', '%s', '%s', '%d', '%d', '%d', '%d');
     $res = $db->insert($table_name, $entry, $format);
     $feed_id = $db->get_insert_id();
     $categories = array();
     if (!empty($_REQUEST['feed_category'])) {
         foreach ($_REQUEST['feed_category'] as $cat_id) {
             $feed_category = get_term($cat_id, 'events_categories');
             $categories[] = $feed_category->name;
         }
     }
     $args = array('feed_url' => $_REQUEST['feed_url'], 'event_category' => implode(', ', $categories), 'tags' => str_replace(',', ', ', $_REQUEST['feed_tags']), 'feed_id' => $feed_id, 'comments_enabled' => (bool) intval($_REQUEST['comments_enabled']), 'map_display_enabled' => (bool) intval($_REQUEST['map_display_enabled']), 'events' => 0, 'keep_tags_categories' => (bool) intval($_REQUEST['keep_tags_categories']), 'keep_old_events' => (bool) intval($_REQUEST['keep_old_events']));
     $loader = $this->_registry->get('theme.loader');
     // display added feed row
     $file = $loader->get_file('feed_row.php', $args, true);
     $output = $file->get_content();
     $output = array('error' => false, 'message' => stripslashes($output));
     $json_strategy = $this->_registry->get('http.response.render.strategy.json');
     return $json_strategy->render(array('data' => $output));
 }
Ejemplo n.º 2
0
 /**
  * add_ics_feed function
  *
  * Adds submitted ics feed to the database
  *
  * @return string JSON output
  *
  */
 public function add_ics_feed()
 {
     check_ajax_referer('ai1ec_ics_feed_nonce', 'nonce');
     if (!current_user_can('manage_ai1ec_feeds')) {
         wp_die(Ai1ec_I18n::__('Oh, submission was not accepted.'));
     }
     $db = $this->_registry->get('dbi.dbi');
     $table_name = $db->get_table_name('ai1ec_event_feeds');
     $feed_categories = empty($_REQUEST['feed_category']) ? '' : implode(',', $_REQUEST['feed_category']);
     $entry = array('feed_url' => $_REQUEST['feed_url'], 'feed_name' => $_REQUEST['feed_url'], 'feed_category' => $feed_categories, 'feed_tags' => $_REQUEST['feed_tags'], 'comments_enabled' => Ai1ec_Primitive_Int::db_bool($_REQUEST['comments_enabled']), 'map_display_enabled' => Ai1ec_Primitive_Int::db_bool($_REQUEST['map_display_enabled']), 'keep_tags_categories' => Ai1ec_Primitive_Int::db_bool($_REQUEST['keep_tags_categories']), 'keep_old_events' => Ai1ec_Primitive_Int::db_bool($_REQUEST['keep_old_events']), 'import_timezone' => Ai1ec_Primitive_Int::db_bool($_REQUEST['feed_import_timezone']));
     $entry = apply_filters('ai1ec_ics_feed_entry', $entry);
     $json_strategy = $this->_registry->get('http.response.render.strategy.json');
     if (is_wp_error($entry)) {
         $output = array('error' => true, 'message' => $entry->get_error_message());
         return $json_strategy->render(array('data' => $output));
     }
     $format = array('%s', '%s', '%s', '%s', '%d', '%d', '%d', '%d', '%d');
     if (!empty($_REQUEST['feed_id'])) {
         $feed_id = $_REQUEST['feed_id'];
         $db->update($table_name, $entry, array('feed_id' => $feed_id));
     } else {
         $res = $db->insert($table_name, $entry, $format);
         $feed_id = $db->get_insert_id();
     }
     $categories = array();
     do_action('ai1ec_ics_feed_added', $feed_id, $entry);
     $update = $this->update_ics_feed($feed_id);
     if ($update['data']['error']) {
         $this->delete_ics_feed(false, $feed_id);
         return $json_strategy->render($update);
     }
     $feed_name = $update['data']['name'];
     $db->update($table_name, array('feed_name' => $feed_name), array('feed_id' => $feed_id));
     $cat_ids = '';
     if (!empty($_REQUEST['feed_category'])) {
         foreach ($_REQUEST['feed_category'] as $cat_id) {
             $feed_category = get_term($cat_id, 'events_categories');
             $categories[] = $feed_category->name;
         }
         $cat_ids = implode(',', $_REQUEST['feed_category']);
     }
     $args = array('feed_url' => $_REQUEST['feed_url'], 'feed_name' => $feed_name, 'event_category' => implode(', ', $categories), 'categories_ids' => $cat_ids, 'tags' => str_replace(',', ', ', $_REQUEST['feed_tags']), 'tags_ids' => $_REQUEST['feed_tags'], 'feed_id' => $feed_id, 'comments_enabled' => (bool) intval($_REQUEST['comments_enabled']), 'map_display_enabled' => (bool) intval($_REQUEST['map_display_enabled']), 'events' => 0, 'keep_tags_categories' => (bool) intval($_REQUEST['keep_tags_categories']), 'keep_old_events' => (bool) intval($_REQUEST['keep_old_events']), 'feed_import_timezone' => (bool) intval($_REQUEST['feed_import_timezone']));
     // Display added feed row.
     $loader = $this->_registry->get('theme.loader');
     $file = $loader->get_file('feed_row.php', $args, true);
     $output = $file->get_content();
     $output = array('error' => false, 'message' => stripslashes($output), 'update' => $update);
     return $json_strategy->render(array('data' => $output));
 }
Ejemplo n.º 3
0
 /**
  * add_ics_feed function
  *
  * Adds submitted ics feed to the database
  *
  * @return string JSON output
  *
  */
 public function add_ics_feed()
 {
     $db = $this->_registry->get('dbi.dbi');
     $table_name = $db->get_table_name('ai1ec_event_feeds');
     $feed_categories = empty($_REQUEST['feed_category']) ? '' : implode(',', $_REQUEST['feed_category']);
     $entry = array('feed_url' => $_REQUEST['feed_url'], 'feed_category' => $feed_categories, 'feed_tags' => $_REQUEST['feed_tags'], 'comments_enabled' => Ai1ec_Primitive_Int::db_bool($_REQUEST['comments_enabled']), 'map_display_enabled' => Ai1ec_Primitive_Int::db_bool($_REQUEST['map_display_enabled']), 'keep_tags_categories' => Ai1ec_Primitive_Int::db_bool($_REQUEST['keep_tags_categories']));
     $format = array('%s', '%s', '%s', '%d', '%d', '%d');
     $res = $db->insert($table_name, $entry, $format);
     $feed_id = $db->get_insert_id();
     $categories = array();
     if (!empty($_REQUEST['feed_category'])) {
         foreach ($_REQUEST['feed_category'] as $cat_id) {
             $feed_category = get_term($cat_id, 'events_categories');
             $categories[] = $feed_category->name;
         }
     }
     $args = array('feed_url' => $_REQUEST['feed_url'], 'event_category' => implode(', ', $categories), 'tags' => str_replace(',', ', ', $_REQUEST['feed_tags']), 'feed_id' => $feed_id, 'comments_enabled' => (bool) intval($_REQUEST['comments_enabled']), 'map_display_enabled' => (bool) intval($_REQUEST['map_display_enabled']), 'events' => 0, 'keep_tags_categories' => (bool) intval($_REQUEST['keep_tags_categories']));
     $loader = $this->_registry->get('theme.loader');
     // display added feed row
     $file = $loader->get_file('feed_row.php', $args, true);
     $output = $file->get_content();
     $output = array("error" => 0, "message" => stripslashes($output));
     echo json_encode($output);
     exit;
 }