diff -urp itunes/itunes.admin.inc itunes.new/itunes.admin.inc
--- itunes/itunes.admin.inc	2009-06-03 18:55:03.000000000 +0200
+++ itunes.new/itunes.admin.inc	2009-06-04 09:35:53.000000000 +0200
@@ -48,7 +48,7 @@ function itunes_admin_settings() {
     $form['itunes_vocabularies'] = array(
       '#tree' => TRUE,
     );
-    // Build the node's filefield selector.
+    // Build the node's vocabulary selector.
     foreach ($node_types as $type) {
       $type_vocabs = taxonomy_get_vocabularies($type->type);
       $options = array(NULL => t('- None -'));
@@ -64,6 +64,32 @@ function itunes_admin_settings() {
     }
   }
 
+  $authorsource = variable_get('itunes_authorsource', array());
+  $form['itunes_authorsource'] = array(
+    '#tree' => TRUE,
+  );
+  // Build the node's itunes:author selector.
+  foreach ($node_types as $type) {
+    $options = array(NULL => t('- None -'));
+    $options['node_author'] = t('Node author');
+    if (module_exists('content')) {
+      $content = content_types($type->type);
+      foreach ($content['fields'] as $field_name => $field) {
+        if ($field['type'] == 'text' && $field['widget']['type'] == 'text_textfield') {
+          $options[$field_name] = $field['widget']['label'];
+        }
+        elseif ($field['type'] == 'userreference') {
+          $options[$field_name] = $field['widget']['label'];
+        }
+      }
+    }
+    $form['itunes_authorsource'][$type->type] = array(
+      '#type' => 'select',
+      '#options' => $options,
+      '#default_value' => empty($authorsource[$type->type]) ? NULL : $authorsource[$type->type],
+    );
+  }
+
   $form = system_settings_form($form);
   $form['#validate'][] = 'itunes_admin_settings_validate';
   $form['#theme'] = 'itunes_admin_settings';
@@ -92,6 +118,7 @@ function theme_itunes_admin_settings($fo
       $row[] = drupal_render($form['itunes_vocabularies'][$key]);
       $has_vocabularies = TRUE;
     }
+    $row[] = drupal_render($form['itunes_authorsource'][$key]);
 
     $rows[] = $row;
   }
@@ -102,6 +129,7 @@ function theme_itunes_admin_settings($fo
   if ($has_vocabularies) {
     $header[] = t('Vocabulary for use as keywords');
   }
+  $header[] = t('Source for use as author');
 
   return theme('table', $header, $rows) . drupal_render($form);
-}
\ Pas de fin de ligne à la fin du fichier.
+}
diff -urp itunes/itunes.install itunes.new/itunes.install
--- itunes/itunes.install	2009-06-03 18:55:03.000000000 +0200
+++ itunes.new/itunes.install	2009-06-04 09:38:01.000000000 +0200
@@ -23,6 +23,7 @@ function itunes_uninstall() {
   variable_del('itunes_types');
   variable_del('itunes_filefields');
   variable_del('itunes_vocabularies');
+  variable_del('itunes_authorsource');
 }
 
 /**
diff -urp itunes/itunes.module itunes.new/itunes.module
--- itunes/itunes.module	2009-06-03 19:22:28.000000000 +0200
+++ itunes.new/itunes.module	2009-06-04 09:38:39.000000000 +0200
@@ -190,11 +190,31 @@ function itunes_nodeapi(&$node, $op, $ar
           }
         }
 
-        $ret[] = array(
-          'namespace' => array('xmlns:itunes' => 'http://www.itunes.com/dtds/podcast-1.0.dtd'),
-          'key' => 'itunes:author',
-          'value' => $node->name,
-        );
+        $authorsource = variable_get('itunes_authorsource', array());
+        if (!empty($authorsource[$node->type])) {
+          if ($authorsource[$node->type] == 'node_author') {
+            $author = $node->name;
+          }
+          else {
+            $author_field = $node->$authorsource[$node->type];
+            if (!empty($author_field[0]['safe'])) {
+              $author = $author_field[0]['view'];
+            }
+            elseif (!empty($author_field[0]['view'])) {
+              foreach ($author_field as $authors) {
+                $authors_view[] = strip_tags(($authors['view']));
+              }
+              $author = implode($authors_view, ', ');
+            }
+          }
+          if ($author != '') {
+            $ret[] = array(
+              'namespace' => array('xmlns:itunes' => 'http://www.itunes.com/dtds/podcast-1.0.dtd'),
+              'key' => 'itunes:author',
+              'value' => $author,
+            );
+          }
+        }
 
         if (!empty($node->itunes)) {
           $ret[] = array(
