summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2008-08-11 07:05:26 +0000
committerDries Buytaert <dries@buytaert.net>2008-08-11 07:05:26 +0000
commitc83339e326e0e55047cccb9b3b819d5d42898cb7 (patch)
tree5e2dc7389afdb08cf208d33650f01f7af23706c7
parenta993136f8ef77f831db170fd8b882bad5b0ba150 (diff)
downloadbrdo-c83339e326e0e55047cccb9b3b819d5d42898cb7.tar.gz
brdo-c83339e326e0e55047cccb9b3b819d5d42898cb7.tar.bz2
- Patch #16282 by mustafau: OPML import improvements.
-rw-r--r--modules/aggregator/aggregator.admin.inc25
1 files changed, 15 insertions, 10 deletions
diff --git a/modules/aggregator/aggregator.admin.inc b/modules/aggregator/aggregator.admin.inc
index 18b003fa3..6095b2c2a 100644
--- a/modules/aggregator/aggregator.admin.inc
+++ b/modules/aggregator/aggregator.admin.inc
@@ -304,26 +304,31 @@ function aggregator_form_opml_submit($form, &$form_state) {
$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 = '%s' OR url = '%s'", $feed['title'], $feed['url']);
- $duplicate = FALSE;
while ($old = db_fetch_object($result)) {
if (strcasecmp($old->title, $feed['title']) == 0) {
drupal_set_message(t('A feed named %title already exists.', array('%title' => $old->title)), 'warning');
- $duplicate = TRUE;
- continue;
+ 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');
- $duplicate = TRUE;
- continue;
+ continue 2;
}
}
- if (!$duplicate) {
- $form_state['values']['title'] = $feed['title'];
- $form_state['values']['url'] = $feed['url'];
- drupal_execute('aggregator_form_feed', $form_state);
- }
+
+ $form_state['values']['title'] = $feed['title'];
+ $form_state['values']['url'] = $feed['url'];
+ drupal_execute('aggregator_form_feed', $form_state);
}
+
+ $form_state['redirect'] = 'admin/content/aggregator';
}
/**