Index: wordpress_import.module
===================================================================
--- wordpress_import.module	(revision 83)
+++ wordpress_import.module	(working copy)
@@ -297,7 +297,22 @@
     '#collapsible' => FALSE,
     '#tree' => TRUE
   );
+  
+  
+  // Menu to import into
+  $menus = array('' => '', 'noimport' => t('Don\'t import'));
+  if (module_exists('menu')){
+    $menus = array_merge($menus, menu_get_menus());
+  }
 
+  $form['basic_options']['menu'] = array(
+    '#type' => 'select',
+    '#title' => t('Import content into menu'),
+    '#description' => t('All imported content will be imported into the selected menu under a new item called "Wordpress import".'),
+    '#default_value' => '',
+    '#options' => $menus,
+  );
+
   // Post content type
   $node_types = node_get_types();
   $content_types = array('' => '', 'noimport' => t('Don\'t import'));
@@ -419,6 +434,11 @@
       $form['advanced_options']['aliases']['#default_value'] = FALSE;
       $form['advanced_options']['aliases']['#disabled'] = TRUE;
   }
+  if (!module_exists('menu')) {
+    drupal_set_message(t('Could not find module "menu".  <strong>Menu will not be imported</strong>'), 'error');
+    $form['basic_options']['menu']['#default_value'] = 'noimport';
+    $form['basic_options']['menu']['#disabled'] = TRUE;
+  }
   if (!extension_loaded('curl')) {
       drupal_set_message(t('cURL PHP extension not available. Transfer images option disabled.'), 'warning');
       $form['advanced_options']['images']['#default_value'] = FALSE;
@@ -433,6 +453,10 @@
     return;
   }
 
+  if (empty($form_state['values']['basic_options']['menu'])) {
+    form_set_error('basic_options][menu',t('You must specify a menu to import Wordpress content into.'));
+  }
+
   if (empty($form_state['values']['basic_options']['nodetype_post'])) {
     form_set_error('basic_options][nodetype',t('You must specify a content type to import Wordpress posts into.'));
   }
@@ -705,6 +729,7 @@
   // Prepare batch operations
   $operations = array();
   $operations[] = array('wordpress_import_process_blog',array($wordpress_import));
+  $operations[] = array('wordpress_import_process_menu',array($wordpress_import));
 
   // Set up batch process
   $batch = array(
@@ -820,6 +845,67 @@
   $wordpress_import->reader->close();
 }
 
+
+/** 
+ * Create menu items
+ */
+function wordpress_import_process_menu(&$wordpress_import, &$context) {
+  $context['results']['created_menu_items'] = 0;
+    
+  if($wordpress_import->options['menu'] == 'noimport'){
+    watchdog("wordpress_import", "Menu was not imported.");
+    return;
+  }
+    
+  watchdog("wordpress_import", "Menu is chosen, creating import menu item.");
+  
+  $root_array = array_filter($wordpress_import->data['menu'], create_function('$array', 'return $array["parent"]==0;'));
+  
+  // Create root menu item
+  $root_link = array(
+    'menu_name' => $wordpress_import->options['menu'],
+    'link_path' => "<front>",
+    'link_title' => "Wordpress Import",
+  );
+  
+  $root_mlid = menu_link_save($root_link);
+  
+  if($root_mlid){
+    $context['results']['created_menu_items']++;
+    watchdog("wordpress_import", "Created root menu item with mlid $root_mlid");
+    wordpress_import_process_menu_process($wordpress_import, $context, $root_array, $root_mlid);
+  }
+
+}
+
+function wordpress_import_process_menu_process(&$wordpress_import, &$context, $siblings, $plid) {
+  if($plid){
+    watchdog("wordpress_import", "Processing ".count($siblings)." children of mlid $plid");
+    foreach($siblings as $post_id => $post_data){
+      watchdog("wordpress_import", "Processing post '$post_id'");
+      if($post_id){
+        $link = array(
+          'menu_name' => $wordpress_import->options['menu'],
+          'link_path' => "node/".$post_data['nid'],
+          'link_title' => $post_data['title'],
+          'plid' => $plid,
+        );
+        $mlid = menu_link_save($link);
+        $context['results']['created_menu_items']++;
+        $children = array_filter($wordpress_import->data['menu'], create_function('$array', 'return $array["parent"]=='.$post_id.';'));
+        if(!empty($children)){
+          wordpress_import_process_menu_process($wordpress_import, $context, $children, $mlid);
+        }
+      }else{
+        watchdog("wordpress_import", "Blank post id, skipping."); 
+      }
+    }
+  }else{
+    watchdog("wordpress_import", "No parent mlid, skipping.");
+  }
+}
+
+
 /**
  * Import categories and tags as taxonomy terms
  */
@@ -947,6 +1033,14 @@
           $reader->read();
           $post['link'] = $reader->value;
           break;
+        case 'wp:post_id' :
+          $reader->read();
+          $post['post_id'] = $reader->value;
+          break;
+        case 'wp:post_parent' :
+          $reader->read();
+          $post['parent_id'] = $reader->value;
+          break;
         case 'wp:comment_status' :
           $reader->read();
           $post['comment_status'] = $reader->value;
@@ -1095,6 +1189,14 @@
   // Save the node
   $node = (object)$node;
   node_save($node);
+  
+  // Set up menu data about this node
+  if($wordpress_import->options['menu'] != "noimport"){
+    $wordpress_import->data['menu'][$post['post_id']]['nid'] = $node->nid;
+    $wordpress_import->data['menu'][$post['post_id']]['parent'] = $post['parent_id'];
+    $wordpress_import->data['menu'][$post['post_id']]['title'] = $node->title;
+    watchdog("wordpress_import", "Adding menu data for nid {$node->nid}: parent {$post['parent_id']}, title {$node->title}.");  
+  }
 
   // Process comments and trackbacks for this post
   if (module_exists('comment') && !empty($post['comments'])) {
@@ -1366,6 +1468,7 @@
 
     $msg_results = array();
     $msg_results[] = '<li>' . t('@created_nodes nodes', array('@created_nodes' => $results['created_nodes'])) . '</li>';
+    $msg_results[] = '<li>' . t('@created_menu_items menu items', array('@created_menu_items' => $results['created_menu_items'])) . '</li>';
     $msg_results[] = '<li>' . t('@created_users users', array('@created_users' => $results['created_users'])) . '</li>';
     $msg_results[] = '<li>' . t('@created_terms taxonomy terms', array('@created_terms' => $results['created_terms'])) . '</li>';
     $msg_results[] = '<li>' . t('@created_comments comments', array('@created_comments' => $results['created_comments'])) . '</li>';
@@ -1411,6 +1514,7 @@
 
   $wordpress_import->data['categories'] = array();
   $wordpress_import->data['tags'] = array();
+  $wordpress_import->data['menu'] = array();
   $wordpress_import->usermap = array();
   $wordpress_import->count['posts'] = 0;
   $wordpress_import->count['author_posts'] = array();
@@ -1476,6 +1580,12 @@
         $wordpress_import->usermap[$reader->value] = 0;
         $wordpress_import->count['author_posts'][$reader->value]++;
       }
+      
+      // Create array to hold menu data
+      if ($reader->name == 'wp:post_id') {
+        $reader->read();
+        $wordpress_import->data['menu'][$reader->value] = array();
+      }      
 
       // Count comments
       if ($reader->name == 'wp:comment') {
