function aggregator_form_opml_submit
aggregator_form_opml_submit($form, &$form_state)
Form submission handler for aggregator_form_opml().
See also
aggregator_form_opml_validate()
File
- modules/aggregator/aggregator.admin.inc, line 319
- Administration page callbacks for the Aggregator module.
Code
function aggregator_form_opml_submit($form, &$form_state) { $data = ''; $validators = array('file_validate_extensions' => array('opml xml')); if ($file = file_save_upload('upload', $validators)) { $data = file_get_contents($file->uri); } else { $response = drupal_http_request($form_state['values']['remote']); if (!isset($response->error)) { $data = $response->data; } } $feeds = _aggregator_parse_opml($data); if (empty($feeds)) { drupal_set_message(t('No new feed has been added.')); return; } $form_state['values']['op'] = t('Save'); foreach ($feeds as $feed) { // Ensure URL is valid. if (!valid_url($feed['url'], TRUE)) { drupal_set_message(t('The URL %url is invalid.', array('%url' => $feed['url'])), 'warning'); continue; } // Check for duplicate titles or URLs. $result = db_query("SELECT title, url FROM {aggregator_feed} WHERE title = :title OR url = :url", array(':title' => $feed['title'], ':url' => $feed['url'])); foreach ($result as $old) { if (strcasecmp($old->title, $feed['title']) == 0) { drupal_set_message(t('A feed named %title already exists.', array('%title' => $old->title)), 'warning'); continue 2; } if (strcasecmp($old->url, $feed['url']) == 0) { drupal_set_message(t('A feed with the URL %url already exists.', array('%url' => $old->url)), 'warning'); continue 2; } } $form_state['values']['title'] = $feed['title']; $form_state['values']['url'] = $feed['url']; drupal_form_submit('aggregator_form_feed', $form_state); } $form_state['redirect'] = 'admin/config/services/aggregator'; }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/modules!aggregator!aggregator.admin.inc/function/aggregator_form_opml_submit/7.x