Index: feedapi_mapper_link.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/feedapi_mapper/mappers/Attic/feedapi_mapper_link.inc,v
retrieving revision 1.1.2.4.2.1
diff -u -p -r1.1.2.4.2.1 feedapi_mapper_link.inc
--- feedapi_mapper_link.inc	8 Sep 2008 11:41:13 -0000	1.1.2.4.2.1
+++ feedapi_mapper_link.inc	12 Jan 2009 19:46:41 -0000
@@ -1,5 +1,5 @@
 <?php
-// $Id: feedapi_mapper_link.inc,v 1.1.2.4.2.1 2008/09/08 11:41:13 alexb Exp $
+// $Id: feedapi_mapper_link.inc,v 1.2 2009/01/12 02:12:29 root Exp root $
 
 /**
  * On behalf implementation of hook_feedapi_mapper for link.module (CCK).
@@ -19,8 +19,9 @@ function link_feedapi_mapper($op, $node,
     if ($op == 'describe') {
       if (feedapi_mapper_content_is_cck_type($field_name, array('link'))) {
         return t('Maps a URL to this link CCK field.');
-      }
+      } 
       // Describe what we are doing in this mapper. This shows up as help text on the mapping page.
+      return FALSE; // We don't know what to do withe this field 
     }
     else if ($op == 'list') {
       if (feedapi_mapper_content_is_cck_type($field_name, array('link'))) {
@@ -35,13 +36,28 @@ function link_feedapi_mapper($op, $node,
       // When we are called at this point, $field_name contains the name of the field the user has
       // decided to map to and $field_element is the feed item element the user has decided to map.
       // We just need to put the two things together. The data structure here depends a lot on
-      // CCK. We stick the value in $feed_element into $node->$field_name[0]['value'].
-      if (!is_array($feed_element)) {
-        $field = $node->$field_name;
-        $field[0]['url'] = link_validate_url($feed_element) ? $feed_element : NULL;
+      // CCK. 
+      $field = $node->$field_name;
+      if (is_string($feed_element) && valid_url($feed_element)) {
+        // straight link 
+        $field[]['url'] = $feed_element;
+      }
+      elseif (is_array($feed_element)) {
+        	foreach ($feed_element as $element) {
+	  		if (is_array($element)) {
+				// enclosure type array
+	    			if (valid_url($element['link'])) {
+              				$field[]['url'] = $element['link'];
+            			}
+			}
+			elseif (is_string($element) && valid_url($element)) {
+            		// not sure when this would be called but for completeness
+            			$field[]['url'] = $element;
+	 		}
+		} 
+	}
         $node->$field_name = $field;
-        return $node;
       }
+      return $node;
     }
-  }
 }
