? 744660-44_full_batching.patch
? 744660-45_full_batching.patch
? 849986-4_clean_batching.patch
? 850652-1_column_names.patch
? 850998-1_nice_upload.patch
? libraries/simplepie.inc
Index: feeds.css
===================================================================
RCS file: feeds.css
diff -N feeds.css
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ feeds.css 11 Jul 2010 16:05:25 -0000
@@ -0,0 +1,8 @@
+/* $Id$ */
+
+#edit-feeds-FeedsFileFetcher-upload-wrapper .file-info {
+ float: left;
+ width: 200px;
+ border-right: 1px solid #ddd;
+ margin-right: 10px;
+ }
Index: feeds.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/feeds/feeds.module,v
retrieving revision 1.48
diff -u -p -r1.48 feeds.module
--- feeds.module 11 Jul 2010 01:10:52 -0000 1.48
+++ feeds.module 11 Jul 2010 16:05:25 -0000
@@ -154,6 +154,9 @@ function feeds_theme() {
'feeds_info' => array(
'file' => 'feeds.pages.inc',
),
+ 'feeds_upload' => array(
+ 'file' => 'feeds.pages.inc',
+ ),
);
}
Index: feeds.pages.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/feeds/feeds.pages.inc,v
retrieving revision 1.18
diff -u -p -r1.18 feeds.pages.inc
--- feeds.pages.inc 4 May 2010 21:24:58 -0000 1.18
+++ feeds.pages.inc 11 Jul 2010 16:05:25 -0000
@@ -152,3 +152,32 @@ function feeds_fetcher_callback($importe
}
drupal_access_denied();
}
+
+/**
+ * Theme upload widget.
+ */
+function theme_feeds_upload($element) {
+ drupal_add_css(drupal_get_path('module', 'feeds') .'/feeds.css');
+ _form_set_class($element, array('form-file'));
+ $output = '';
+ if (!empty($element['#file_info'])) {
+ $info = $element['#file_info'];
+ $output .= '
';
+ $output .= '
';
+ $output .= l(basename($info['path']), $info['path']);
+ $output .= '
';
+ $output .= '
';
+ $output .= format_size($info['size']);
+ $output .= '
';
+ if ($info['mime']) {
+ $output .= '
';
+ $output .= check_plain($info['mime']);
+ $output .= '
';
+ }
+ $output .= '
';
+ }
+ $output .= '';
+ $output .= '\n";
+ $output .= '
';
+ return theme('form_element', $element, $output);
+}
Index: plugins/FeedsFileFetcher.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/feeds/plugins/FeedsFileFetcher.inc,v
retrieving revision 1.10
diff -u -p -r1.10 FeedsFileFetcher.inc
--- plugins/FeedsFileFetcher.inc 11 Jul 2010 13:54:35 -0000 1.10
+++ plugins/FeedsFileFetcher.inc 11 Jul 2010 16:05:25 -0000
@@ -53,17 +53,28 @@ class FeedsFileFetcher extends FeedsFetc
* Source form.
*/
public function sourceForm($source_config) {
- $form = array();
+ $form = $info = array();
+ if (!empty($source_config['source'])) {
+ $info = array(
+ 'path' => $source_config['source'],
+ 'size' => filesize(realpath($source_config['source'])),
+ );
+ if (module_exists('mimedetect')) {
+ $info['mime'] = mimedetect_mime(realpath($source_config['source']));
+ }
+ }
$form['source'] = array(
- '#type' => 'textfield',
+ '#type' => empty($this->config['direct']) ? 'value' : 'textfield',
'#title' => t('File'),
'#description' => t('Specify a file in the site\'s file system path or upload a file below.'),
- '#default_value' => isset($source_config['source']) ? $source_config['source'] : '',
+ '#default_value' => empty($source_config['source']) ? '' : $source_config['source'],
);
$form['upload'] = array(
'#type' => 'file',
- '#title' => t('Upload'),
- '#description' => t('Choose a file from your local computer.'),
+ '#title' => empty($this->config['direct']) ? t('File') : NULL,
+ '#description' => empty($source_config['source']) ? t('Select the file to be imported from your local system.') : t('Select a different file to be imported from your local system.'),
+ '#theme' => 'feeds_upload',
+ '#file_info' => $info,
);
return $form;
}
@@ -91,4 +102,27 @@ class FeedsFileFetcher extends FeedsFetc
form_set_error('feeds][source', t('File needs to point to a file in your Drupal file system path.'));
}
}
+
+ /**
+ * Override parent::configDefaults().
+ */
+ public function configDefaults() {
+ return array(
+ 'direct' => FALSE,
+ );
+ }
+
+ /**
+ * Override parent::configForm().
+ */
+ public function configForm(&$form_state) {
+ $form = array();
+ $form['direct'] = array(
+ '#type' =>'checkbox',
+ '#title' => t('Supply path to file directly'),
+ '#description' => t('For experts. If checked users can specify a path to a file when importing rather than uploading a file. This is useful when files to be imported are already present on server.'),
+ '#default_value' => $this->config['direct'],
+ );
+ return $form;
+ }
}