Index: views_rss.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views_rss/views_rss.module,v
retrieving revision 1.1
diff -u -p -r1.1 views_rss.module
--- views_rss.module	22 Sep 2009 16:49:55 -0000	1.1
+++ views_rss.module	16 Sep 2010 11:45:28 -0000
@@ -15,23 +15,86 @@ function views_rss_views_api() {
  * Implementation of hook_theme().
  */
 function views_rss_theme() {
+  $theme = array();
+
+  $theme['views_rss_formatter_rss_image'] = array(
+    'arguments' => array('element' => NULL),
+    'function' => 'theme_views_rss_formatter_rss',
+  );
+
+  foreach (imagecache_presets() as $preset) {
+    $theme['views_rss_formatter_'. $preset['presetname'] .'_rss'] = array(
+      'arguments' => array('element' => NULL),
+      'function' => 'theme_views_rss_formatter_rss',
+    );
+  }
+
   $path = drupal_get_path('module', 'views_rss');
-  return array(
-    'views_rss_fields_item' => array(
-      'arguments' => array('item' => array()),
-      'file' => 'views_rss_views_fields.theme.inc',
-      'template' => 'views-rss-fields-item',
-      'path' => "$path/views",
-    ),
-   'views_rss_feed_icon' => array(
-      'arguments' => array('url', 'title', 'icon'),
-      'file' => 'views_rss_views_fields.theme.inc',
-      'path' => "$path/views",
-    ),
-    'views_rss_feed_description' => array(
-       'arguments' => array('description', 'view'),
-       'file' => 'views_rss_views_fields.theme.inc',
-       'path' => "$path/views",
-     ),
+
+  $theme['views_rss_fields_item'] = array(
+    'arguments' => array('item' => array()),
+    'file' => 'views_rss_views_fields.theme.inc',
+    'template' => 'views-rss-fields-item',
+    'path' => "$path/views",
+  );
+
+  $theme['views_rss_feed_icon'] = array(
+    'arguments' => array('url', 'title', 'icon'),
+    'file' => 'views_rss_views_fields.theme.inc',
+    'path' => "$path/views",
+  );
+
+  $theme['views_rss_feed_description'] = array(
+    'arguments' => array('description', 'view'),
+    'file' => 'views_rss_views_fields.theme.inc',
+    'path' => "$path/views",
+   );
+
+  return $theme;
+}
+
+/**
+ * Implementation of hook_field_formatter_info().
+ */
+function views_rss_field_formatter_info() {
+  $formatters = array();
+
+  $formatters['rss_image'] = array(
+    'label' => t('RSS : image rss'),
+    'field types' => array('image', 'filefield'),
+  );
+
+  foreach (imagecache_presets() as $preset) {
+    $formatters[$preset['presetname'] .'_rss'] = array(
+      'label' => t('RSS : @preset image rss', array('@preset' => $preset['presetname'])),
+      'field types' => array('image', 'filefield'),
+    );
+  }
+
+  return $formatters;
+}
+
+function theme_views_rss_formatter_rss($element) {
+  // Inside a view $element may contain NULL data. In that case, just return.
+  if (empty($element['#item']['fid'])) {
+    return '';
+  }
+
+  $presetname = substr($element['#formatter'], 0, strrpos($element['#formatter'], '_'));
+
+  $item = $element['#item'];
+
+  if (in_array($presetname, imagecache_presets())) {
+    $path = imagecache_create_url($presetname, $item['filepath']);
+  }
+  else {
+    $path = $item['filepath'];
+  }
+
+  return sprintf(
+    '<enclosure url="%s" length="%s" type="%s" />',
+    url($path, array('absolute'=>TRUE)),
+    $item['filesize'],
+    $item['filemime']
   );
 }
Index: views/views_plugin_style_rss_fields.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views_rss/views/views_plugin_style_rss_fields.inc,v
retrieving revision 1.1.2.9
diff -u -p -r1.1.2.9 views_plugin_style_rss_fields.inc
--- views/views_plugin_style_rss_fields.inc	25 Aug 2010 20:04:30 -0000	1.1.2.9
+++ views/views_plugin_style_rss_fields.inc	16 Sep 2010 11:45:28 -0000
@@ -222,6 +222,10 @@ class views_plugin_style_rss_fields exte
         'title' => t('pubDate'),
         'description' => t('RSS 2.0 pubDate element'),
       ),
+      'enclosure' => array(
+        'title' => t('Enclosure'),
+        'description' => t('RSS 2.0 enclosure element'),
+      ),
     );
   }
 
@@ -259,4 +263,4 @@ class views_plugin_style_rss_fields exte
     }
     return FALSE;
   }
-}
\ No newline at end of file
+}
Index: views/views_rss_views_fields.theme.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views_rss/views/views_rss_views_fields.theme.inc,v
retrieving revision 1.1.2.12
diff -u -p -r1.1.2.12 views_rss_views_fields.theme.inc
--- views/views_rss_views_fields.theme.inc	26 Aug 2010 20:38:04 -0000	1.1.2.12
+++ views/views_rss_views_fields.theme.inc	16 Sep 2010 11:45:28 -0000
@@ -69,8 +69,16 @@ function template_preprocess_views_view_
 function template_preprocess_views_rss_fields_item(&$vars) {
   $item = $vars['item'];
 
-  // Loop through key=>value pairs
   $row = '';
+
+  // Remove enclosure from item array, because it should be formatted in
+  // another way.
+  if(isset($item['enclosure'])) {
+    $row .= $item['enclosure'];
+    unset($item['enclosure']);
+  }
+
+  // Loop through key=>value pairs
   foreach ($item as $key => $value) {
     if ($value) {
       $row .= "<$key>". check_plain(htmlspecialchars_decode($value)) ."</$key>\n";
